이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
std::string guess_sequence(int N) {
int k=press("AB");
char c;
if(k!=0){int s=press("A");if(s==0){c='B';}else{c='A';}}
else{int s=press("X");if(s==0){c='Y';}else{c='X';}}
int cnt=0;
string cur="";cur+=c;
set<char>st;
st.insert('A'),st.insert('B'),st.insert('X'),st.insert('Y');
st.erase(c);
char p[4];
p[1]=*st.begin();st.erase(*st.begin());
p[2]=*st.begin();st.erase(*st.begin());
p[3]=*st.begin();st.erase(*st.begin());
int i=1;
for(;i<N-1;cnt++){
string tr=cur;
tr+=p[1],tr+=p[2];
tr+=cur; tr+=p[1],tr+=p[3];
tr+=cur; tr+=p[2],tr+=p[2];
ll ans=press(tr);
ll n=cur.length();
if(ans==n){
cur+=p[3];
i++;
}
else if(ans==n+1){
string dk=cur;
dk+=p[2],dk+=p[3];
ll oo=press(dk);
if(oo==n+2){cur+=p[2],cur+=p[3];}
else if(oo==n+1){cur+=p[2],cur+=p[1];}
else{cur+=p[1],cur+=p[1];}
i+=2;
}
else{
string dk=cur;
dk+=p[1],dk+=p[2];
ll oo=press(dk);
if(oo==n+2){cur+=p[1],cur+=p[2];}
else if(oo==n+1){cur+=p[1],cur+=p[3];}
else{cur+=p[2],cur+=p[2];}
i+=2;
}
}
if(i==N){
return cur;
}
else{
string tr=cur;tr+=p[1];
if(press(tr)==N)return tr;
tr[N-1]=p[2];
if(press(tr)==N)return tr;
tr[N-1]=p[3];
return tr;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |