제출 #1237064

#제출 시각아이디문제언어결과실행 시간메모리
1237064caacrugon콤보 (IOI18_combo)C++20
0 / 100
0 ms416 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=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()+1){ S+=lcf[lcf.size()-1]; }else if(coins==S.size()){ S+=lcf[lcf.size()-2]; }else{ S+=lcf[lcf.size()-3]; } cout<<S<<endl; bf=coins; }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]; } } } cout<<S<<endl; return S; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...