QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#461248 | #8490. Guess the String | Lynkcat# | AC ✓ | 39ms | 3760kb | C++14 | 5.6kb | 2024-07-02 17:12:37 | 2024-07-02 17:12:38 |
Judging History
answer
#include<bits/stdc++.h>
#define poly vector<int>
#define IOS ios::sync_with_stdio(false)
#define ll long long
#define mp make_pair
#define mt make_tuple
#define pa pair < int,int >
#define fi first
#define se second
#define inf 1e18
#define mod 998244353
#define sz(x) ((int)((x).size()))
// #define int ll
// #define N
using namespace std;
const int N=1005;
int n,a[N],b[N];
int qry(int u,int x,int y)
{
cout<<"? "<<u<<" "<<char('a'+x)<<char('a'+y)<<endl;
int res=(b[u]==x)+(b[u+1]==y);
cin>>res;
return res;
}
void guess(int x,int y)
{
int t=qry(x,0,0);
if (t==0)
{
int t=qry(x,1,1);
if (t==0)
{
a[x]=2,a[y]=2;
return;
}
if (t==1)
{
int t=qry(x,1,2);
if (t==0)
{
a[x]=2,a[y]=1;
return;
}
a[x]=1,a[y]=2;
return;
}
a[x]=1,a[y]=1;
return;
}
if (t==1)
{
int t=qry(x,0,1);
if (t==0)
{
a[y]=0;
int t=qry(x,1,0);
if (t==2) a[x]=1; else a[x]=2;
return;
}
if (t==1)
{
a[x]=0;a[y]=2;
return;
}
a[x]=0,a[y]=1;
return;
}
a[x]=0,a[y]=0;
return;
}
void guess(int x,int y,int z)
{
int t=qry(x,0,0);
if (t==0)
{
int t=qry(x,1,1);
if (t==0)
{
a[x]=2,a[y]=2;
int t=qry(y,2,0);
if (t==1)
{
int t=qry(y,2,1);
if (t==2)
{
a[z]=1;
return;
}
a[z]=2;
return;
}
a[z]=0;
return;
}
if (t==1)
{
int t=qry(y,1,0);
if (t==0)
{
a[x]=1,a[y]=2;
int t=qry(y,2,1);
if (t==2)
{
a[z]=1;
return;
}
a[z]=2;
return;
}
if (t==1)
{
int t=qry(y,1,1);
if (t==0)
{
a[x]=1,a[y]=2;
a[z]=0;
return;
}
if (t==1)
{
a[x]=2,a[y]=1;
a[z]=2;
return;
}
if (t==2)
{
a[x]=2,a[y]=1,a[z]=1;
return;
}
}
if (t==2)
{
a[x]=2,a[y]=1,a[z]=0;
return;
}
return;
}
if (t==2)
{
a[x]=1,a[y]=1;
int t=qry(y,1,0);
if (t==2)
{
a[z]=0;
return;
}
t=qry(y,1,1);
if (t==2)
{
a[z]=1;
return;
}
a[z]=2;
return;
}
}
if (t==1)
{
int t=qry(y,0,0);
if (t==0)
{
a[x]=0;
int t=qry(x,0,1);
if (t==2) a[y]=1;
else a[y]=2;
t=qry(y,a[y],1);
if (t==2) a[z]=1;
else a[z]=2;
return;
}
if (t==1)
{
int t=qry(y,0,1);
if (t==0)
{
a[x]=0;a[z]=0;
int t=qry(x,0,1);
if (t==2) a[y]=1;
else a[y]=2;
return;
}
if (t==1)
{
a[y]=0;
a[z]=2;
int t=qry(x,1,0);
if (t==2) a[x]=1;
else a[x]=2;
return;
}
if (t==2)
{
a[y]=0,a[z]=1;
int t=qry(x,1,0);
if (t==2) a[x]=1;
else a[x]=2;
return;
}
}
if (t==2)
{
a[y]=0,a[z]=0;
int t=qry(x,1,0);
if (t==2) a[x]=1;
else a[x]=2;
return;
}
}
if (t==2)
{
a[x]=a[y]=0;
int t=qry(y,0,0);
if (t==2)
{
a[z]=0;
return;
}
t=qry(y,0,1);
if (t==2)
{
a[z]=1;
return;
}
a[z]=2;
return;
}
return;
}
mt19937_64 rnd(time(0));
void BellaKira()
{
for (int i=1;i<=n;i++) b[i]=rnd()%3;
for (int i=1;i<=n;i+=3)
{
if (i+1>n)
{
int t=qry(i-1,a[i-1],0);
if (t==2) a[i]=0;
else
{
t=qry(i-1,a[i-1],1);
if (t==2) a[i]=1;
else a[i]=2;
}
break;
}
if (i+2>n)
{
guess(i,i+1);
break;
}
guess(i,i+1,i+2);
}
// for (int i=1;i<=n;i++)
// {
// if (a[i]!=b[i]) cout<<"!!"<<i<<" "<<a[i]<<" "<<b[i]<<endl;
// assert(a[i]==b[i]);
// }
cout<<"! ";
for (int i=1;i<=n;i++) cout<<char('a'+a[i]);
cout<<endl;
}
signed main()
{
int T=1;
while (cin>>n)
{
BellaKira();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3744kb
input:
3 1 0 2 1 0
output:
? 1 aa ? 2 aa ? 1 ab ? 2 bb ! abc !
result:
ok max queries count: 4
Test #2:
score: 0
Accepted
time: 0ms
memory: 3672kb
input:
2 2 2 1 2 2 1 0 2 2 0 1 0 2 0 2 2 1 0 1 2 0 1 2 2 1 1 2 0 0 0
output:
? 1 aa ! aa ? 1 aa ? 1 ab ! ab ? 1 aa ? 1 ab ? 1 ba ! ba ? 1 aa ? 1 bb ? 1 bc ! cb ? 1 aa ? 1 bb ! bb ? 1 aa ? 1 ab ? 1 ba ! ca ? 1 aa ? 1 bb ? 1 bc ! bc ? 1 aa ? 1 ab ! ac ? 1 aa ? 1 bb ! cc !
result:
ok max queries count: 3
Test #3:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
3 1 0 1 2 3 1 1 0 2 3 1 2 2 3 0 1 2 3 0 1 0 1 3 0 0 1 1 3 1 1 2 1 3 1 1 1 2 3 0 1 1 2 3 0 1 0 2 3 1 0 1 1 3 0 0 1 2 3 1 0 2 1 3 0 1 1 1 3 0 0 2 3 2 2 3 0 1 1 0 3 1 1 1 1 3 1 1 2 2 3 0 2 1 2 3 2 1 2 3 1 2 1 3 0 2 1 1 3 1 1 0 1 3 0 2 2 3 2 1 1 3 1 0 2 2 0
output:
? 1 aa ? 2 aa ? 1 ab ? 2 cb ! acb ? 1 aa ? 2 aa ? 2 ab ? 1 ab ! aba ? 1 aa ? 2 aa ? 1 ba ! baa ? 1 aa ? 1 bb ? 2 ba ! cba ? 1 aa ? 1 bb ? 2 ba ? 2 cb ! bcc ? 1 aa ? 1 bb ? 2 ca ? 2 cb ! ccc ? 1 aa ? 2 aa ? 2 ab ? 1 ba ! cab ? 1 aa ? 2 aa ? 2 ab ? 1 ba ! bac ? 1 aa ? 1 bb ? 2 ba ? 2 bb ! cbb ? 1 aa ?...
result:
ok max queries count: 4
Test #4:
score: 0
Accepted
time: 0ms
memory: 3668kb
input:
4 1 0 1 2 2 4 1 1 2 2 1 1 4 1 2 2 2 4 1 0 2 1 1 1 4 0 1 2 1 1 4 0 0 1 1 2 4 1 1 1 2 1 1 4 0 2 2 1 1 4 0 0 1 1 1 1 4 0 1 0 2 2 4 1 1 0 2 1 1 4 2 2 1 2 4 0 1 1 0 1 1 4 0 1 1 1 2 4 1 0 2 1 1 2 4 1 1 1 1 1 1 4 0 1 1 0 2 4 0 1 0 2 1 2 4 0 1 1 2 1 2 4 0 1 0 1 1 2 4 2 1 2 2 4 0 1 1 1 1 1 4 1 1 0 1 1 2 4 0 ...
output:
? 1 aa ? 2 aa ? 1 ab ? 2 cb ? 3 ba ! acba ? 1 aa ? 2 aa ? 2 ab ? 1 ba ? 3 ba ? 3 bb ! babc ? 1 aa ? 2 aa ? 1 ba ? 3 aa ! baaa ? 1 aa ? 2 aa ? 1 ab ? 2 bb ? 3 ca ? 3 cb ! abcc ? 1 aa ? 1 bb ? 2 ba ? 3 aa ? 3 ab ! cbac ? 1 aa ? 1 bb ? 2 ca ? 2 cb ? 3 ca ! ccca ? 1 aa ? 2 aa ? 2 ab ? 1 ba ? 3 ca ? 3 cb...
result:
ok max queries count: 6
Test #5:
score: 0
Accepted
time: 39ms
memory: 3668kb
input:
100 0 2 1 1 2 1 1 1 1 0 1 2 2 1 0 1 1 0 1 1 0 1 0 1 1 0 1 2 0 1 0 2 1 2 1 0 2 1 2 1 2 1 0 0 1 1 1 1 1 1 2 1 1 0 1 1 0 1 0 2 1 0 1 2 1 2 1 1 0 2 1 0 1 1 1 1 2 1 0 2 1 2 2 1 1 2 1 2 1 1 1 2 0 0 1 2 2 1 2 1 0 2 1 0 0 1 2 0 1 0 1 0 1 0 2 1 0 1 1 1 1 100 0 2 1 1 1 0 1 2 0 1 1 1 1 0 2 2 1 1 0 2 0 0 1 1 0 ...
output:
? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ? 5 aa ? 5 ab ? 7 aa ? 8 aa ? 8 ab ? 7 ab ? 10 aa ? 11 aa ? 13 aa ? 14 aa ? 13 ab ? 14 cb ? 16 aa ? 16 bb ? 17 ba ? 17 bb ? 19 aa ? 20 aa ? 19 ab ? 20 cb ? 22 aa ? 22 bb ? 23 ba ? 25 aa ? 25 bb ? 26 ba ? 26 cb ? 28 aa ? 29 aa ? 28 ba ? 31 aa ? 31 bb ? 32 ba ? 32 bb...
result:
ok max queries count: 129
Test #6:
score: 0
Accepted
time: 2ms
memory: 3636kb
input:
4 0 2 1 1 2 4 1 1 0 1 1 1 4 2 2 2 4 1 0 1 1 1 2 4 1 2 1 1 1 4 0 0 1 2 2 4 0 1 0 2 1 1 4 2 1 2 1 2 4 0 1 1 0 2 4 0 0 1 1 1 1 4 1 1 0 1 2 4 0 1 1 1 2 4 1 0 2 1 1 1 4 1 1 1 2 2 4 2 1 2 1 1 4 0 1 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 1 1 1 1 4 1 2 2 1 2 4 1 0 2 1 1 1 4 0 1 1 2 1 1 4 0 1 1 1 ...
output:
? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 3 ca ! bbca ? 1 aa ? 2 aa ? 2 ab ? 1 ab ? 3 aa ? 3 ab ! acac ? 1 aa ? 2 aa ? 3 aa ! aaaa ? 1 aa ? 2 aa ? 1 ab ? 2 cb ? 3 ca ? 3 cb ! accb ? 1 aa ? 2 aa ? 1 ba ? 3 aa ? 3 ab ! caac ? 1 aa ? 1 bb ? 2 ca ? 2 cb ? 3 ba ! ccba ? 1 aa ? 1 bb ? 2 ba ? 2 cb ? 3 ba ? 3 bb ! bcbc...
result:
ok max queries count: 6
Test #7:
score: 0
Accepted
time: 4ms
memory: 3760kb
input:
5 0 2 1 1 2 5 1 1 1 1 2 5 2 2 0 0 5 0 1 1 0 1 1 5 0 0 1 2 1 2 5 0 1 1 1 2 5 0 2 1 2 1 0 1 5 1 0 1 1 0 0 5 1 1 0 1 1 1 5 0 1 1 0 1 2 5 0 0 1 2 1 1 5 2 2 0 1 2 5 0 1 1 1 1 0 1 5 1 0 2 2 1 0 2 5 1 1 0 1 1 2 5 1 1 1 2 0 0 5 1 2 2 1 0 2 5 0 1 0 1 0 1 0 5 0 1 0 1 0 1 2 5 1 1 1 2 0 0 5 0 2 1 1 1 1 5 0 1 0 ...
output:
? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ! bbcaa ? 1 aa ? 2 aa ? 2 ab ? 1 ba ? 4 aa ! cacaa ? 1 aa ? 2 aa ? 4 aa ? 4 bb ! aaacc ? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ? 4 ab ! bcaac ? 1 aa ? 1 bb ? 2 ca ? 2 cb ? 4 aa ? 4 ab ! ccbab ? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ! cbcaa ? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ...
result:
ok max queries count: 7
Test #8:
score: 0
Accepted
time: 0ms
memory: 3752kb
input:
20 0 2 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 2 1 1 0 1 0 2 0 2 20 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 2 0 0 1 2 0 0 20 0 2 1 2 0 1 1 2 0 0 1 1 0 2 1 2 0 0 1 1 0 2 1 1 0 1 0 20 0 1 1 1 0 0 1 2 0 1 0 1 0 1 0 2 0 1 1 2 0 1 0 1 0 1 0 20 0 1 0 1 0 2 1 2 0 1 0 2 0 0 1 2 0 0 1 2 0 1 1 2 0 1 2 20 0 0 1 1 0 1 0 2 ...
output:
? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ? 4 bb ? 5 ca ? 5 cb ? 7 aa ? 7 bb ? 8 ba ? 8 bb ? 10 aa ? 10 bb ? 11 ca ? 11 cb ? 13 aa ? 13 bb ? 14 ba ? 14 bb ? 16 aa ? 16 bb ? 17 ba ? 17 cb ? 19 aa ? 19 bb ! bbcccccbccccbbcbcbbb ? 1 aa ? 1 bb ? 2 ca ? 2 cb ? 4 aa ? 4 bb ? 5 ca ? 5 cb ? 7 aa ? 7 bb ? 8 ba ? 8 ...
result:
ok max queries count: 27
Test #9:
score: 0
Accepted
time: 13ms
memory: 3628kb
input:
100 0 2 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 2 1 1 0 1 0 2 0 2 1 1 0 0 1 1 0 0 1 1 0 1 0 2 0 0 1 2 0 1 1 1 0 1 1 1 0 1 1 2 0 1 0 2 0 1 0 1 0 1 1 2 0 1 0 1 0 1 1 2 0 0 1 2 0 1 1 1 0 0 1 2 0 1 0 1 0 1 0 2 0 1 1 2 0 1 0 1 0 1 1 2 0 0 1 2 0 2 1 2 0 1 1 1 0 1 1 1 0 1 1 1 0 2 1 2 1 1 100 0 0 1 1 0 1 0 2 0 1 1 2 ...
output:
? 1 aa ? 1 bb ? 2 ba ? 2 bb ? 4 aa ? 4 bb ? 5 ca ? 5 cb ? 7 aa ? 7 bb ? 8 ba ? 8 bb ? 10 aa ? 10 bb ? 11 ca ? 11 cb ? 13 aa ? 13 bb ? 14 ba ? 14 bb ? 16 aa ? 16 bb ? 17 ba ? 17 cb ? 19 aa ? 19 bb ? 20 ba ? 20 bb ? 22 aa ? 22 bb ? 23 ca ? 23 cb ? 25 aa ? 25 bb ? 26 ca ? 26 cb ? 28 aa ? 28 bb ? 29 ba ...
result:
ok max queries count: 134
Test #10:
score: 0
Accepted
time: 10ms
memory: 3756kb
input:
100 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2 1 2 100 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 1 0 2 1 ...
output:
? 1 aa ? 1 bb ? 2 ba ? 4 aa ? 4 bb ? 5 ba ? 7 aa ? 7 bb ? 8 ba ? 10 aa ? 10 bb ? 11 ba ? 13 aa ? 13 bb ? 14 ba ? 16 aa ? 16 bb ? 17 ba ? 19 aa ? 19 bb ? 20 ba ? 22 aa ? 22 bb ? 23 ba ? 25 aa ? 25 bb ? 26 ba ? 28 aa ? 28 bb ? 29 ba ? 31 aa ? 31 bb ? 32 ba ? 34 aa ? 34 bb ? 35 ba ? 37 aa ? 37 bb ? 38 ...
result:
ok max queries count: 134
Extra Test:
score: 0
Extra Test Passed