Submission #131968

#TimeUsernameProblemLanguageResultExecution timeMemory
131968dvdg6566Combo (IOI18_combo)C++14
0 / 100
2 ms328 KiB
#include "combo.h" #include<bits/stdc++.h> using namespace std; #define pb emplace_back #define mp make_pair #define ALL(x) x.begin(), x.end() #define SZ(x) (int)x.size() char ltrs[] = {'A', 'B', 'X', 'Y'}; string guess_sequence(int N) { // cout<<N<<'\n'; assert(0); string out=""; int a = press("AB"); int b = press("AX"); if(a&&b)out+='A'; if (a&&!b)out+='B'; if (!a&&b)out+='X'; if(!a&&!b)out+='Y'; vector<char> V; for (int i=0;i<4;++i)if(ltrs[i] != out[0])V.pb(ltrs[i]); for (int i=1;i<N-1;++i){ string q = ""; for (auto i : out)q+=i; q += V[0]; q += V[0]; for (auto i : out)q+=i; q += V[0]; q += V[1]; for (auto i : out)q+=i; q += V[0]; q += V[2]; for (auto i : out)q+=i; q += V[1]; // cout<<q<<'\n'; int res = press(q); if (res == SZ(out)){ out += V[2]; }else if (res == SZ(out) + 2){ out += V[0]; }else{ out += V[1]; } } out += V[0]; if (press(out) == N)return out; out.pop_back(); out += V[1]; if (press(out) == N)return out; out.pop_back(); out += V[2]; assert(press(out) == N); return out; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...