제출 #445480

#제출 시각아이디문제언어결과실행 시간메모리
445480silverfish콤보 (IOI18_combo)C++14
97 / 100
36 ms580 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define ar array string guess_sequence(int n) { srand(time(0)); string ans=""; vector<char> c, cc = {'A', 'B', 'X', 'Y'}; bool found = 0; for(int i = 0; i < 3; ++i){ if(press(ans+cc[i])){ ans.pb(cc[i]); for(char cch : cc) if(cch != cc[i]) c.pb(cch); found = 1; break; } } if(!found){ ans.pb(cc[3]); for(char cch : cc) if(cch != cc[3]) c.pb(cch); } for(int i = 1; i < n; ++i){ random_shuffle(c.begin(), c.end()); if(i == n-1){ int ret = press(ans+c[0]); if(ret == i+1){ ans.pb(c[0]); }else{ ret = press(ans+c[1]); if(ret == i+1){ ans.pb(c[1]); }else ans.pb(c[2]); } break; } ar<string,4> ask; ask[0] = {c[0], c[0]}; ask[1] = {c[0], c[1]}; ask[2] = {c[0], c[2]}; ask[3] = {c[1]}; int ret = press(ans+ask[0]+ans+ask[1] +ans+ask[2]+ans+ask[3]); if(ret == i){ ans += c[2]; }else if(ret == i+1){ ans += c[1]; }else{ ans += c[0]; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...