QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#798166 | #1458. Binary Search Algorithm | Kazemaru | WA | 1ms | 7804kb | C++17 | 985b | 2024-12-04 09:00:18 | 2024-12-04 09:00:19 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define f(i,j,k) for(int i=j;i<=k;++i)
#define g(i,j,k) for(int i=j;i>=k;--i)
int n,m,s,l;
const int N=2e5,M=8765;
int a[N],b[N],p[N],x,y,z;string O;bool P[M][M];
inline int Q(int x,int y){return(y&&!a[y])||P[a[x]][a[y]];}
inline void put(int x){if(x)b[++m]=x;}
inline void pvt(int x){put(a[x]);put(a[x*2]);put(a[x*2+1]);}
inline void ask(){
sort(b+1,b+m+1);m=unique(b+1,b+m+1)-b-1;
cout<<m;f(i,1,m)cout<<" "<<b[i];cout<<endl;
f(i,1,m)cin>>b[i];
f(i,1,m)f(j,i,m)P[b[i]][b[j]]=1;m=0;
}
inline void mv(int x,int y){swap(a[x],a[y]);p[a[x]]=x;p[a[y]]=y;}
#define h(u,P)for(x=p[l];(y=x/2,z=x*2+Q(x*2+1,x*2),(x&&x<=n))&&P;x=u)
signed main(){
cin>>s;
f(_,1,s*2){
cin>>O>>l;
if(O[0]=='a'){
a[p[l]=++n]=l;
h(y,1)pvt(x);ask();
h(y,Q(x,y))mv(x,y);
}else{
a[p[l]]=a[n];a[n--]=0;
h(z,1)pvt(x);ask();
h(z,Q(z,x))mv(x,z);
}
cout<<(n?a[1]:-1)<<endl;
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 7772kb
input:
3 add 1 1 add 3 3 1 delete 1 add 2 3 2 delete 3 2 delete 2
output:
1 1 1 2 1 3 3 0 3 2 2 3 3 1 2 2 0 -1
result:
ok n=3, OK
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 7804kb
input:
10 add 9 9 add 4 9 4 add 6 9 4 6 delete 9 4 6 add 7 7 4 6 delete 4 add 5 7 5 6 add 8 7 5 8 6 add 10 7 10 5 8 6 delete 8 add 3 3 7 10 5 6 add 2 3 7 5 2 delete 6 2 delete 10 delete 7 2 add 1 3 1 5 2 delete 1 2 delete 3 5 2 delete 5 delete 2
output:
1 9 9 2 4 9 9 3 4 6 9 9 2 4 6 4 3 4 6 7 7 0 7 3 5 6 7 7 4 5 6 7 8 7 5 5 6 7 8 10 7 0 7 5 3 5 6 7 10 3 4 2 3 5 7 3 1 2 3 0 3 1 2 3 4 1 2 3 5 3 1 2 3 2 2 5 5 0 5 0 -1
result:
wrong answer WA after query 19 found 5, answer is 2