Submission #1237077

#TimeUsernameProblemLanguageResultExecution timeMemory
1237077caacrugonCombo (IOI18_combo)C++20
100 / 100
6 ms484 KiB
#include "combo.h" #include <bits/stdc++.h> using namespace std; string guess_sequence(int N) { string p="",S=""; vector<char> lc={'A','B','X','Y'}; vector<char> lcf; char av=' '; p+=lc[lc.size()-1]; p+=lc[lc.size()-2]; int coins = press(p); if(coins>0){ p=lc[lc.size()-1]; coins=press(p); if(coins>0){ S=lc[lc.size()-1]; av=lc[lc.size()-1]; }else{ S=lc[lc.size()-2]; av=lc[lc.size()-2]; } }else{ p=lc[lc.size()-3]; coins=press(p); if(coins>0){ S=lc[lc.size()-3]; av=lc[lc.size()-3]; }else{ S=lc[lc.size()-4]; av=lc[lc.size()-4]; } } for(int i=0;i<lc.size();i++){ if(lc[i]==av)continue; lcf.push_back(lc[i]); } int bf=1; while(S.size()<N){ if(S.size()+2<=N){ p=S; p+=lcf[lcf.size()-1]; p+=lcf[lcf.size()-2]; p+=S; p+=lcf[lcf.size()-1]; p+=lcf[lcf.size()-1]; p+=S; p+=lcf[lcf.size()-1]; p+=lcf[lcf.size()-3]; p+=S; p+=lcf[lcf.size()-2]; int coins=press(p); if(coins>=S.size()+2){ S+=lcf[lcf.size()-1]; }else if(coins==S.size()+1){ S+=lcf[lcf.size()-2]; }else{ S+=lcf[lcf.size()-3]; } bf++; }else{ p=S; p+=lcf[lcf.size()-1]; p+=S; p+=lcf[lcf.size()-2]; int coins=press(p); if(coins>bf){ bf=coins; p=S; p+=lcf[lcf.size()-1]; coins=press(p); if(coins>=bf){ S+=lcf[lcf.size()-1]; }else{ S+=lcf[lcf.size()-2]; } }else{ S+=lcf[lcf.size()-3]; } } } return S; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...