QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#809093#8490. Guess the StringatgcAC ✓13ms3840kbC++201.3kb2024-12-11 11:34:302024-12-11 11:34:30

Judging History

This is the latest submission verdict.

  • [2024-12-11 11:34:30]
  • Judged
  • Verdict: AC
  • Time: 13ms
  • Memory: 3840kb
  • [2024-12-11 11:34:30]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;

struct node{
	int qid;
	vector<node>son;
}stp={0,{{2,{{3,{{7,{{26},{25},{}}},{9,{{24},{23},{22}}},{21}}},{3,{{7,{{17},{16},{}}},{9,{{15},{14},{13}}},{12}}},{}}},{2,{{3,{{7,{{8},{7},{}}},{9,{{6},{5},{4}}},{3}}},{1,{{},{7,{{},{20},{19}}},{18}}},{1,{{},{7,{{},{11},{10}}},{9}}}}},{1,{{},{7,{{},{2},{1}}},{0}}}}};

int qry(int i,char a,char b){cout<<"? "<<i<<' '<<a<<b<<endl;int c;cin>>c;return c;}

string S;
void sol(int n,int i,char lasis){
	if(i>n)return;
	if(i==n){
		if(qry(i-1,lasis,'a')==2)S+='a';
		else if(qry(i-1,lasis,'b')==2)S+='b';
		else S+='c';
		return;
	}
	if(i==n-1){
		switch(qry(i,'a','a')){
		case 2:S+="aa";return;
		case 1:
			switch(qry(i,'b','b')){
			case 0:if(qry(i,'a','c'))S+="ac";else S+="ca";return;
			case 1:if(qry(i,'a','b'))S+="ab";else S+="ba";return;
			default:S+="bb";
			}return;
		default:
			int b=qry(i,'b','b'),c=qry(i,'b','c');
			if(min(b,c))S+='b';else S+='c';
			if(b<c)S+='c';else S+='b';
		}return;
	}
	node*a=&stp;
	while(!a->son.empty())
		a=&a->son[qry(i+(a->qid&1),'a'+(a->qid>>1)%3,'a'+(a->qid/6))];
	S+='a'+a->qid/9;
	S+='a'+a->qid/3%3;
	S+='a'+a->qid%3;
	sol(n,i+3,S.back());
}

signed main() {
	ios::sync_with_stdio(0),cin.tie(0);
	int n;while(cin>>n,n)S.clear(),sol(n,1,0),cout<<"! "<<S<<endl;
}

詳細信息

Test #1:

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

input:

3
1
0
1
1
0

output:

? 1 aa
? 1 ba
? 2 ba
? 2 bb
! abc

result:

ok max queries count: 4

Test #2:

score: 0
Accepted
time: 1ms
memory: 3584kb

input:

2
2
2
1
1
2
2
1
1
0
2
0
1
0
2
0
2
1
2
1
0
0
2
0
1
2
2
1
0
2
2
0
0
1
0

output:

? 1 aa
! aa
? 1 aa
? 1 bb
? 1 ab
! ab
? 1 aa
? 1 bb
? 1 ab
! ba
? 1 aa
? 1 bb
? 1 bc
! cb
? 1 aa
? 1 bb
? 1 bc
! bb
? 1 aa
? 1 bb
? 1 ac
! ca
? 1 aa
? 1 bb
? 1 bc
! bc
? 1 aa
? 1 bb
? 1 ac
! ac
? 1 aa
? 1 bb
? 1 bc
! cc

result:

ok max queries count: 3

Test #3:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 ab
! acb
? 1 aa
? 1 ba
? 2 ba
! aba
? 1 aa
? 1 ba
? 2 aa
! baa
? 1 aa
? 1 ba
? 2 ba
! cba
? 1 aa
? 1 ba
? 2 ba
? 2 ab
! bcc
? 1 aa
? 1 ba
? 2 ba
? 2 ab
! ccc
? 1 aa
? 1 ba
? 2 aa
? 2 ab
! cab
? 1 aa
? 1 ba
? 2 aa
? 2 ab
! bac
? 1 aa
? 1 ba
? 2 ba
? 2 bb
! cbb
? 1 aa
? 1 ba
?...

result:

ok max queries count: 4

Test #4:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 3 ba
! acba
? 1 aa
? 1 ba
? 2 aa
? 2 ab
? 3 ba
? 3 bb
! babc
? 1 aa
? 1 ba
? 2 aa
? 3 aa
! baaa
? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 3 ca
? 3 cb
! abcc
? 1 aa
? 1 ba
? 2 ba
? 3 aa
? 3 ab
! cbac
? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 3 ca
! ccca
? 1 aa
? 1 ba
? 2 aa
? 2 ab
? 3 ca
? 3 cb...

result:

ok max queries count: 6

Test #5:

score: 0
Accepted
time: 13ms
memory: 3580kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 4 aa
? 5 aa
? 5 ab
? 7 aa
? 7 ba
? 8 ba
? 8 bb
? 10 aa
? 11 aa
? 13 aa
? 13 ba
? 14 ba
? 14 ab
? 16 aa
? 16 ba
? 17 ba
? 17 bb
? 19 aa
? 19 ba
? 20 ba
? 20 ab
? 22 aa
? 22 ba
? 23 ba
? 25 aa
? 25 ba
? 26 ba
? 26 ab
? 28 aa
? 28 ba
? 29 aa
? 31 aa
? 31 ba
? 32 ba
? 32 bb...

result:

ok max queries count: 130

Test #6:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 3 ca
! bbca
? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 3 aa
? 3 ab
! acac
? 1 aa
? 2 aa
? 3 aa
! aaaa
? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 3 ca
? 3 cb
! accb
? 1 aa
? 1 ba
? 2 aa
? 3 aa
? 3 ab
! caac
? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 3 ba
! ccba
? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 3 ba
? 3 bb
! bcbc...

result:

ok max queries count: 6

Test #7:

score: 0
Accepted
time: 0ms
memory: 3576kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 4 aa
! bbcaa
? 1 aa
? 1 ba
? 2 aa
? 2 ab
? 4 aa
! cacaa
? 1 aa
? 2 aa
? 4 aa
? 4 bb
? 4 bc
! aaacc
? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 4 aa
? 4 bb
? 4 ac
! bcaac
? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 4 aa
? 4 bb
? 4 ab
! ccbab
? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 4 aa
! cbcaa
? 1 aa
? 1 ba
...

result:

ok max queries count: 7

Test #8:

score: 0
Accepted
time: 3ms
memory: 3672kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 4 aa
? 4 ba
? 5 ba
? 5 ab
? 7 aa
? 7 ba
? 8 ba
? 8 bb
? 10 aa
? 10 ba
? 11 ba
? 11 ab
? 13 aa
? 13 ba
? 14 ba
? 14 bb
? 16 aa
? 16 ba
? 17 ba
? 17 ab
? 19 aa
? 19 bb
? 19 bc
! bbcccccbccccbbcbcbbb
? 1 aa
? 1 ba
? 2 ba
? 2 ab
? 4 aa
? 4 ba
? 5 ba
? 5 ab
? 7 aa
? 7 ba
? 8...

result:

ok max queries count: 27

Test #9:

score: 0
Accepted
time: 3ms
memory: 3504kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 2 bb
? 4 aa
? 4 ba
? 5 ba
? 5 ab
? 7 aa
? 7 ba
? 8 ba
? 8 bb
? 10 aa
? 10 ba
? 11 ba
? 11 ab
? 13 aa
? 13 ba
? 14 ba
? 14 bb
? 16 aa
? 16 ba
? 17 ba
? 17 ab
? 19 aa
? 19 ba
? 20 ba
? 20 bb
? 22 aa
? 22 ba
? 23 ba
? 23 ab
? 25 aa
? 25 ba
? 26 ba
? 26 ab
? 28 aa
? 28 ba
? 29 ba
...

result:

ok max queries count: 134

Test #10:

score: 0
Accepted
time: 4ms
memory: 3572kb

input:

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

output:

? 1 aa
? 1 ba
? 2 ba
? 4 aa
? 4 ba
? 5 ba
? 7 aa
? 7 ba
? 8 ba
? 10 aa
? 10 ba
? 11 ba
? 13 aa
? 13 ba
? 14 ba
? 16 aa
? 16 ba
? 17 ba
? 19 aa
? 19 ba
? 20 ba
? 22 aa
? 22 ba
? 23 ba
? 25 aa
? 25 ba
? 26 ba
? 28 aa
? 28 ba
? 29 ba
? 31 aa
? 31 ba
? 32 ba
? 34 aa
? 34 ba
? 35 ba
? 37 aa
? 37 ba
? 38 ...

result:

ok max queries count: 134

Extra Test:

score: 0
Extra Test Passed