Submission #171052

#TimeUsernameProblemLanguageResultExecution timeMemory
171052Nodir_BobievCombo (IOI18_combo)C++14
5 / 100
3 ms280 KiB
# include "combo.h" # include <bits/stdc++.h> # define FILE using namespace std; /* string S; int N, counter; int press( string p ){ int coins = 0; counter ++; cout << counter << ' ' << p << endl; int len = p.size(); for (int i = 0, j = 0; i < len; ++i) { if (j < N && S[j] == p[i]) { ++j; }else if (S[0] == p[i]) { j = 1; }else { j = 0; } coins = max(coins, j); } return coins; } */ string guess_sequence( int N ){ string S; if( press("AB") ){ if( press("A") ){ S = "A"; } else{ S = "B"; } }else{ if( press( "X" ) ){ S = "X"; } else{ S = "Y"; } } set < char > st = { 'A', 'B', 'X', 'Y' }; st.erase( S[0] ); vector < char > vc; for( auto c: st ) vc.push_back( c ); for( int i = 1; i < N-1; i ++ ){ string p = S + vc[0] + S + vc[1] + vc[2] + S + vc[1] + vc[0]+ S + vc[1] + vc[1] ; int x = press( p ); if( x == (int)S.size() ){ S += vc[2]; } else if( x == (int)S.size()+1 ){ S += vc[0]; } else{ S += vc[1]; } } if( press( S + vc[0] + S + vc[1]) == N ){ if( press( S + vc[0] ) == N ){ S += vc[0]; }else{ S += vc[1]; } } else{ S += vc[2]; } return S; } /* int main(){ # ifdef FILE freopen( "input.txt", "r", stdin ); freopen( "output.txt", "w", stdout ); # endif ios_base::sync_with_stdio( false ); cin >> S; N = S.size(); cout << guess_sequence( S.size() ); cout << endl << counter << endl; } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...