QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#262561#7833. Binary StringQZJ123456WA 2ms3640kbC++141.0kb2023-11-23 20:21:312023-11-23 20:21:31

Judging History

你现在查看的是最新测评结果

  • [2023-11-23 20:21:31]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3640kb
  • [2023-11-23 20:21:31]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
mt19937 rnd(1);
int R(int l,int r){
	uniform_int_distribution<int>rd(l,r);
	return rd(rnd);
}
int ans[1005];
void init(){
	for(int i=1;i<=1000;i++)ans[i]=ans[i-1]+R(0,1);
}
int sum[1005];
int Get(int l,int r){
//	int o=R(0,1);
//	if(o==0)return ans[r]-ans[l-1];
//	else return R(0,r-l+1);
	cout<<"? "<<l<<" "<<r<<endl;
	int x;cin>>x;
	return x;
}
int main(){
	init();
	for(int s=0;s<1024;s++){
		for(int i=1;i<=10;i++){
			sum[i]=sum[i-1];
			if((s>>(i-1))&1)sum[i]++;
		}
		int ct=0;
		for(int i=1;i<=10;i++){
			for(int j=i;j<=10;j++){
				if(sum[j]-sum[i-1]==Get(i,j)){
					ct++;
				}
			}
		}
		if(30<=ct&&ct<=35){
			for(int i=11;i<=1000;i++){
				int ct0=0,ct1=0;
				for(int j=1;j<=10;j++){
					int h=Get(j,i);
					if(h==sum[i-1]-sum[j-1]+1)ct1++;
					if(h==sum[i-1]-sum[j-1])ct0++;
				}
				sum[i]=sum[i-1];
				if(ct0<ct1)sum[i]++;
			}
			cout<<"! ";
			for(int i=1;i<=1000;i++)cout<<sum[i]-sum[i-1];
			return 0;
		}
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 3640kb

input:

1
1
2
1
5
3
1
7
5
4
0
2
1
2
3
2
6
4
7
0
2
2
2
4
2
2
5
1
1
1
1
4
1
4
1
1
3
0
3
0
0
0
0
0
4
0
2
3
4
0
1
3
0
2
1

output:

? 1 1
? 1 2
? 1 3
? 1 4
? 1 5
? 1 6
? 1 7
? 1 8
? 1 9
? 1 10
? 2 2
? 2 3
? 2 4
? 2 5
? 2 6
? 2 7
? 2 8
? 2 9
? 2 10
? 3 3
? 3 4
? 3 5
? 3 6
? 3 7
? 3 8
? 3 9
? 3 10
? 4 4
? 4 5
? 4 6
? 4 7
? 4 8
? 4 9
? 4 10
? 5 5
? 5 6
? 5 7
? 5 8
? 5 9
? 5 10
? 6 6
? 6 7
? 6 8
? 6 9
? 6 10
? 7 7
? 7 8
? 7 9
? 7 10...

result:

wrong output format Unexpected end of file - token expected