QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#117243#6668. Trokutikshitij_sodani0 21ms7612kbC++143.2kb2023-06-30 19:16:022023-06-30 19:16:04

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-30 19:16:04]
  • 评测
  • 测评结果:0
  • 用时:21ms
  • 内存:7612kb
  • [2023-06-30 19:16:02]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define a first
#define b second
#define pb push_back
typedef long long llo;
//#define endl '\n'
int ans[101][101];
int vis[101][101][101];
int val[101][101];
int su=0;
int query(int aa,int bb,int cc){
	int x=min(aa,min(bb,cc));
	int y=max(aa,max(bb,cc));
	int z=aa;
	if(z==x or z==y){
		z=bb;
	}
	if(z==x or z==y){
		z=cc;
	}
	if(vis[x][z][y]>=0){
		return vis[x][z][y];
	}
	cout<<"? "<<x+1<<" "<<z+1<<" "<<y+1<<endl;
	int xx;
	xx=val[x][y]+val[y][z]+val[z][x];;

	cin>>xx;
	su++;

	vis[x][z][y]=xx;
	return xx;
}
void set2(int i,int j,int k){
	ans[i][j]=k;
	ans[j][i]=k;
}
mt19937 rng;
vector<int> cur;
void solve(int i,vector<int> tt){
	shuffle(tt.begin(),tt.end(),rng);
	vector<pair<int,int>> ee;
	for(int j=0;j<tt.size();j+=2){
		if(j+1==tt.size()){
			set2(i,tt[j],query(cur[0],i,tt[j])-ans[cur[0]][i]-ans[cur[0]][tt[j]]);
		}
		else{
			int x=query(i,tt[j],tt[j+1])-ans[tt[j]][tt[j+1]];
			if(x==0){
				set2(i,tt[j],0);
				set2(i,tt[j+1],0);
			}
			else if(x==2){
				set2(i,tt[j],1);
				set2(i,tt[j+1],1);
			}
			else{
				ee.pb({tt[j],tt[j+1]});
			}
		}
	}
	if(ee.size()){
		vector<int> ff;
		for(auto j:ee){
			ff.pb(j.a);
		}
		solve(i,ff);
		for(int j=0;j<ee.size();j++){
			set2(i,ee[j].b,1-ans[i][ee[j].a]);
		}
	}
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n=100;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			for(int k=0;k<n;k++){
				vis[i][j][k]=-1;
			}
		}
	}
	
	rng=mt19937(chrono::steady_clock::now().time_since_epoch().count());
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			val[i][j]=rng()%2;
			val[j][i]=val[i][j];
		}
	}
	
	for(int i=0;i<6;i++){
		for(int j=i+1;j<6;j++){
			for(int k=j+1;k<6;k++){
				query(i,j,k);
				//cout<<vis[i][j][k]<<":"<<endl;
				if(vis[i][j][k]==0 or vis[i][j][k]==3 and cur.size()==0){
					
					cur.pb(i);
					cur.pb(j);
					cur.pb(k);
					int z=1;
					if(vis[i][j][k]==0){
						z=0;
					}
					set2(i,j,z);
					set2(i,k,z);
					set2(j,k,z);
				}
			}
		}
	}
	shuffle(cur.begin(),cur.end(),rng);
		/*cout<<11<<endl;
		for(auto j:cur){
			cout<<j<<",";
		}
		cout<<endl;
		return 0;*/
	vector<int> tt;
	for(int i=0;i<n;i++){
		if(i==cur[0] or i==cur[1] or i==cur[2]){
			continue;
		}
	//	shuffle(cur.begin(),cur.end(),rng);

		int aa=query(i,cur[0],cur[1])-ans[cur[0]][cur[1]];
		int bb=query(i,cur[1],cur[2])-ans[cur[1]][cur[2]];
		if(aa==0 or aa==2){
			set2(i,cur[0],aa/2);
			set2(i,cur[1],aa/2);
			set2(i,cur[2],bb-(aa/2));
			continue;
		}
		else if(bb==0 or bb==2){
			set2(i,cur[1],bb/2);
			set2(i,cur[2],bb/2);
			set2(i,cur[0],aa-(bb/2));
			continue;
		}
		int cc=query(i,cur[2],cur[0])-ans[cur[2]][cur[0]];
		int su=(aa+bb+cc)/2;
		set2(i,cur[2],su-aa);
		set2(i,cur[0],su-bb);
		set2(i,cur[1],su-cc);
	}
	for(int i=0;i<n;i++){
		if(i==cur[0] or i==cur[1] or i==cur[2]){
			continue;
		}
		solve(i,tt);
		tt.pb(i);
	}
	cout<<"!"<<endl;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
		//	assert(ans[i][j]==val[i][j]);

			cout<<ans[i][j];
		}
		cout<<endl;
	}


//	cout<<su<<endl;







	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 100
Accepted
time: 21ms
memory: 7524kb

input:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

output:

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

result:

points 1.0 points  1.0 correct 2609 queries

Test #2:

score: 100
Accepted
time: 7ms
memory: 7556kb

input:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 2 3 7
? 1 2 7
? 2 3 8
? 1 2 8
? 2 3 9
? 1 2 9
? 2 3 10
? 1 2 10
? 2 3 11
? 1 2 11
? 2 3 12
? 1 2 12
? 2 3 13
? 1 2 13
? 2 3 14
? 1 2 14
? ...

result:

points 1.0 points  1.0 correct 2558 queries

Test #3:

score: 100
Accepted
time: 12ms
memory: 7552kb

input:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 2 5 7
? 4 5 7
? 2 5 8
? 4 5 8
? 2 5 9
? 4 5 9
? 2 5 10
? 4 5 10
? 2 5 11
? 4 5 11
? 2 5 12
? 4 5 12
? 2 5 13
? 4 5 13
? 2 5 14
? 4 5 14
? ...

result:

points 1.0 points  1.0 correct 2559 queries

Test #4:

score: 100
Accepted
time: 15ms
memory: 7488kb

input:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 1 3 7
? 1 2 7
? 1 3 8
? 1 2 8
? 1 3 9
? 1 2 9
? 1 3 10
? 1 2 10
? 1 3 11
? 1 2 11
? 1 3 12
? 1 2 12
? 1 3 13
? 1 2 13
? 1 3 14
? 1 2 14
? ...

result:

points 1.0 points  1.0 correct 2559 queries

Test #5:

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

input:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 2 5 7
? 1 5 7
? 2 5 8
? 1 5 8
? 2 5 9
? 1 5 9
? 2 5 10
? 1 5 10
? 2 5 11
? 1 5 11
? 2 5 12
? 1 5 12
? 2 5 13
? 1 5 13
? 2 5 14
? 1 5 14
? ...

result:

points 1.0 points  1.0 correct 2566 queries

Test #6:

score: 100
Accepted
time: 12ms
memory: 7588kb

input:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 1 3 7
? 1 2 7
? 1 3 8
? 1 2 8
? 1 3 9
? 1 2 9
? 1 3 10
? 1 2 10
? 1 3 11
? 1 2 11
? 1 3 12
? 1 2 12
? 1 3 13
? 1 2 13
? 1 3 14
? 1 2 14
? ...

result:

points 1.0 points  1.0 correct 2567 queries

Test #7:

score: 100
Accepted
time: 6ms
memory: 7584kb

input:

0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
2
1
2
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
2
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
2
0
0
1
1
0
0
0
0
1
1
1
2
2
2
1
0
0
0
0
0
1
0
1
1
2
1
1
0
0
1
1
1
0
0
0
1
1
2
0
0
1
0
1
1
2
0
1
1
1
0
1
1
0
1
1
2
1
0
0
0
1
1
0
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 3 5 7
? 3 4 7
? 3 5 8
? 3 4 8
? 3 5 9
? 3 4 9
? 3 5 10
? 3 4 10
? 3 5 11
? 3 4 11
? 3 5 12
? 3 4 12
? 3 5 13
? 3 4 13
? 3 5 14
? 3 4 14
? ...

result:

points 1.0 points  1.0 correct 3178 queries

Test #8:

score: 100
Accepted
time: 14ms
memory: 7488kb

input:

3
1
2
1
1
2
1
1
0
1
1
1
1
0
0
0
0
0
0
0
2
1
0
0
2
2
1
0
1
2
0
0
1
1
2
2
1
1
0
1
1
0
0
0
0
1
2
1
1
1
0
2
2
1
1
0
0
1
2
1
0
0
1
2
0
0
1
0
1
1
0
1
0
2
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
2
0
0
0
0
2
2
0
1
1
0
1
2
0
0
2
1
0
0
1
2
0
0
1
2
0
1
0
0
1
1
2
1
2
1
2
0
1
1
1
0
1
1
0
1
1
2
1
0
2
1
0
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 4 6 7
? 4 5 7
? 4 6 8
? 4 5 8
? 4 6 9
? 4 5 9
? 4 6 10
? 4 5 10
? 4 6 11
? 4 5 11
? 4 6 12
? 4 5 12
? 4 6 13
? 4 5 13
? 5 6 13
? 4 6 14
? ...

result:

points 1.0 points  1.0 correct 3332 queries

Test #9:

score: 0
Wrong Answer
time: 12ms
memory: 7612kb

input:

2
2
2
2
3
3
3
2
2
3
1
1
1
0
0
1
2
2
3
1
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
...

output:

? 1 2 3
? 1 2 4
? 1 2 5
? 1 2 6
? 1 3 4
? 1 3 5
? 1 3 6
? 1 4 5
? 1 4 6
? 1 5 6
? 2 3 4
? 2 3 5
? 2 3 6
? 2 4 5
? 2 4 6
? 2 5 6
? 3 4 5
? 3 4 6
? 3 5 6
? 4 5 6
? 1 4 7
? 2 4 7
? 1 4 8
? 2 4 8
? 1 4 9
? 2 4 9
? 1 4 10
? 2 4 10
? 1 4 11
? 2 4 11
? 1 4 12
? 2 4 12
? 1 4 13
? 2 4 13
? 1 4 14
? 2 4 14
? ...

result:

wrong answer the graph you report is incorrect