이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
int press(std::string p);
std::string guess_sequence(int N){
std::string ans="";
if(N==0)return ans;
char s[4];
if(N==1){
if(press("A")==1)ans="A",s[0]='A',s[1]='B',s[2]='X',s[3]='Y';
else if(press("B")==1)ans="B",s[0]='B',s[1]='A',s[2]='X',s[3]='Y';
else if(press("X")==1)ans="X",s[0]='X',s[1]='B',s[2]='A',s[3]='Y';
else ans="Y",s[0]='Y',s[1]='B',s[2]='X',s[3]='A';
return ans;
}
int x=press("AXB");
if(x==0){
ans="Y",s[0]='Y',s[1]='B',s[2]='X',s[3]='A';
}
else if(x==1){
int y=press("AYABB");
if(y==0)ans="X",s[0]='X',s[1]='B',s[2]='A',s[3]='Y';
else if(y==1)ans="B",s[0]='B',s[1]='A',s[2]='X',s[3]='Y';
else if(y>1)ans="A",s[0]='A',s[1]='B',s[2]='X',s[3]='Y';
}
else if(x==2){
int y=press("AX");
if(y==1)ans="X",s[0]='X',s[1]='B',s[2]='A',s[3]='Y';
else if(y==2)ans="A",s[0]='A',s[1]='B',s[2]='X',s[3]='Y';
}
else {
ans="A",s[0]='A',s[1]='B',s[2]='X',s[3]='Y';
}
for(int i=2;i<=N-1;i++){
std::string now1 = ans;now1+=s[1];
std::string now2 = ans;now2+=s[2];now2+=s[1];
std::string now3 = ans;now3+=s[2];now3+=s[2];
std::string now4 = ans;now4+=s[2];now4+=s[3];
std::string tt = now1+now2+now3+now4;
int x = press(tt);
if(x==i-1)ans = ans+s[3];
else if(x==i)ans = ans+s[1];
else ans = ans+s[2];
}
std::string tt1=ans;tt1+=s[1];
std::string tt2=ans;tt2+=s[2];
if(press(tt1)==N){
return tt1;
}
else if(press(tt2)==N){
return tt2;
}
else{
ans+=s[3];return ans;
}
}
컴파일 시 표준 에러 (stderr) 메시지
combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:36:52: warning: 's[3]' may be used uninitialized in this function [-Wmaybe-uninitialized]
36 | std::string now4 = ans;now4+=s[2];now4+=s[3];
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |