제출 #336907

#제출 시각아이디문제언어결과실행 시간메모리
336907blueCombo (IOI18_combo)C++11
5 / 100
2 ms312 KiB
#include "combo.h" #include <iostream> #include <string> #include <vector> using namespace std; /* int press(string S) { cout << S << '\n'; int res; cin >> res; return res; }*/ string guess_sequence(int N) { string res; if(press("AB") >= 1) { res = (press("A") == 1 ? "A" : "B"); } else { res = (press("X") == 1 ? "X" : "Y"); } // cout << "res = " << res << '\n'; int pos; string query; int query_res; vector<string> C; for(string t: {"A", "B", "X", "Y"}) if(t != res) C.push_back(t); for(pos = 1; pos < N-1; pos++) { query.clear(); query += res + C[0]; query += res + C[1] + C[0]; query += res + C[1] + C[1]; query += res + C[1] + C[2]; //cout << pos << ' '; query_res = press(query); if(query_res == pos) { res += C[2]; // cout << "adding " << C[2] << '\n'; } else if(query_res == pos + 1) { res += C[0]; // cout << "adding " << C[0] << '\n'; } else { res += C[1]; // cout << "adding " << C[1] << '\n'; } // cout << "res = " << res << '\n'; } if(press(res + C[0] + res + C[1]) == pos) { res += C[2]; pos++; } else { if(press(res + C[0]) == pos + 1) { res += C[0]; pos++; } else { res += C[1]; pos++; } } return res; } /* int main() { int N; cin >> N; string S; cin >> S; cout << guess_sequence(N) << '\n'; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...