이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "combo.h"
int cnt;
using namespace std;
string a="ABXY";
/*string pas="YAXA";
int press(string s){
int r=0;
cnt++;
string b="";
for(int k=0;k<pas.size();k++){
b=b+pas[k];
if(s.find(b)==-1)
return r;
r++;
}
return r;
}*/
string guess_sequence(int N){
string s="";
string b="";
if(N==3){
int r=1;
while(s.size()<N){
for(int k=0;k<a.size();k++){
string b=s+a[k];
if(k==a.size()-1){
s=b;
r++;
if(r==2){
if(b=="A")
a.erase(0,1);
if(b=="B")
a.erase(1,1);
if(b=="X")
a.erase(2,1);
if(b=="Y")
a.erase(3,1);
}
break;
}
else
if(press(b)==r){
s=b;
r++;
if(r==2){
if(b=="A")
a.erase(0,1);
if(b=="B")
a.erase(1,1);
if(b=="X")
a.erase(2,1);
if(b=="Y")
a.erase(3,1);
}
break;
}
}
}
return s;
}
else
if(press(s+"B")==1){
a.erase(1,1);
s=s+"B";
}
else{
if(press(s+"A")==1){
a.erase(0,1);
s=s+"A";
}
else{
if(press(s+"X")==1){
a.erase(2,1);
s=s+"X";
}
else{
a.erase(3,1);
s=s+"Y";
}
}
}
while(s.size()<N-1){
string c=s+a[0]+s+a[1]+a[0]+s+a[1]+a[2]+s+a[1]+a[1];
int ps=press(c);
if(ps==s.size())
s+=a[2];
else{
if(ps==s.size()+1)
s+=a[0];
else
if(ps==s.size()+2)
s+=a[1];
}
}
for(int k=0;k<a.size();k++){
if(k==2){
b=s+a[k];
break;
}
else{
string i=s+a[k];
if(press(i)==N){
b=s+a[k];
break;
}
}
}
s=b;
return s;
}
/*int main(){
string s=guess_sequence(pas.size());
cout<<s;
return 0;
}*/
컴파일 시 표준 에러 (stderr) 메시지
combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:24:15: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
24 | while(s.size()<N){
| ~~~~~~~~^~
combo.cpp:25:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
25 | for(int k=0;k<a.size();k++){
| ~^~~~~~~~~
combo.cpp:27:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
27 | if(k==a.size()-1){
| ~^~~~~~~~~~~~
combo.cpp:91:15: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
91 | while(s.size()<N-1){
| ~~~~~~~~^~~~
combo.cpp:95:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
95 | if(ps==s.size())
| ~~^~~~~~~~~~
combo.cpp:98:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
98 | if(ps==s.size()+1)
| ~~^~~~~~~~~~~~
combo.cpp:101:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
101 | if(ps==s.size()+2)
| ~~^~~~~~~~~~~~
combo.cpp:105:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
105 | for(int k=0;k<a.size();k++){
| ~^~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |