QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#804144#1458. Binary Search Algorithmeggegg185WA 1ms4644kbC++141.3kb2024-12-07 20:38:412024-12-07 20:38:46

Judging History

This is the latest submission verdict.

  • [2024-12-07 20:38:46]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 4644kb
  • [2024-12-07 20:38:41]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
int n,ask[100010],res[100010],cnt = 0;
struct segT {
	int mi[200010];
	segT() {memset(mi,-1,sizeof(mi));}
	void pp(int u,int c,int k = 1,int l = 1,int r = n) {
		if(l == r) {if(c == 1) ask[++cnt] = u; return ;}
		int mid = (l+r)>>1; if(u <= mid) {pp(u,c,mid<<1,l,mid); if(mi[mid<<1|1] != -1) ask[++cnt] = mi[mid<<1|1];}
		else {pp(u,c,mid<<1|1,mid+1,r); if(mi[mid<<1] != -1) ask[++cnt] = mi[mid<<1];}
	}
	void modify(int u,int c,int k = 1,int l = 1,int r = n) {
		if(l == r) {mi[k] = c; return ;}
		int mid = (l+r)>>1; if(u <= mid) modify(u,c,mid<<1,l,mid);
		else modify(u,c,mid<<1|1,mid+1,r);
		if(mi[mid<<1|1] == -1) {mi[k] = mi[mid<<1]; return ;}
		if(mi[mid<<1] == -1) {mi[k] = mi[mid<<1|1]; return ;}
		if(res[mi[mid<<1]] < res[mi[mid<<1|1]]) mi[k] = mi[mid<<1];
		else mi[k] = mi[mid<<1|1];
	}
}tt;
char s[10];
int main() {
	//cin.tie(0)->sync_with_stdio(false);
	scanf("%d",&n); for(int i = 1; i <= 2*n; i++) {
		int x; scanf("%s%d",s+1,&x);
		cnt = 0; tt.pp(x,(s[1]=='a')?1:(-1)); sort(ask+1,ask+1+cnt); cnt = unique(ask+1,ask+1+cnt)-ask-1;
		cout << cnt << ' '; for(int i = 1; i <= cnt; i++) cout << ask[i] << ' '; cout << endl;
		for(int i = 1; i <= cnt; i++) {int s; scanf("%d",&s); res[ask[i]] = s;}
		tt.modify(x,(s[1]=='a')?x:(-1)); cout << tt.mi[1] << endl;
	}
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 4644kb

input:

3
add 1
1
add 3
3 1
delete 1
3
add 2
3 2
delete 3
2
delete 2


output:

1 1 
1
2 1 3 
3
1 3 
3
2 2 3 
3
1 2 
2
0 
-1

result:

ok n=3, OK

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 4536kb

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
6
add 5
5 6
add 8
5 8 6
add 10
10 5 8
delete 8
10 5 6
add 3
3 5 6
add 2
3 5 6 2
delete 6
7 10 2
delete 10
7 2
delete 7
2
add 1
3 1 5 2
delete 1
3 5 2
delete 3
5 2
delete 5
2
delete 2


output:

1 9 
9
2 4 9 
9
3 4 6 9 
6
2 4 6 
4
3 4 6 7 
6
1 6 
6
2 5 6 
5
3 5 6 8 
5
3 5 8 10 
8
3 5 6 10 
6
3 3 5 6 
3
4 2 3 5 6 
6
3 2 7 10 
10
2 2 7 
7
1 2 
2
4 1 2 3 5 
2
3 2 3 5 
5
2 2 5 
5
1 2 
2
0 
-1

result:

wrong answer WA after query 3 found 6, answer is 9