이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <string>
#include <stdio.h>
#include <iostream>
#include "combo.h"
using namespace std;
string all;
string aaa;
bool have[4]={0};
bool can[5][2005]={0};
char change[4]={'A','B','X','Y'};
string guess_sequence(int N)
{
int con=0,i,j,k,t,x=0,a,b;
for(i=0;i<N;i++)
{
t=0;
con=0;
for(j=0;j<4;j++)
{
if(i==1&&change[j]==all[0]) for(k=i;k<N;k++) can[j][k]=1;
t+=(1-can[j][i]);
}
for(j=0;j<4;j++)
{
if(can[j][i]) continue;
con=0;
if(con+1==t) all+=change[j];
else
{
con++;
a=-1;
b=-1;
for(k=0;k<4;k++)
{
if(can[k][i+1]) continue;
if(a==-1&&(i||j!=k)) a=k;
else if(b==-1&&(i||j!=k)) b=k;
}
//printf("%d %d\n",a,b);
aaa=all;
aaa+=change[j];
aaa+=change[a];
aaa+=all;
aaa+=change[j];
aaa+=change[b];
x=press(aaa);
//printf("a:%d %d\n",x,i);
if(x==i+1)
{
all+=change[j];
if(i!=N-1) for(k=b+1;k<4;k++) if(!can[k][i+1]) all+=change[k];
i++;
break;
}
else if(x==i+2)
{
all+=change[j];
for(k=b+1;k<4;k++) if(!can[k][i]) can[k][i+1]=1;
break;
}
}
}
//std::cout<<i<<" "<<all<<'\n';
}
return all;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |