제출 #916914

#제출 시각아이디문제언어결과실행 시간메모리
916914_VIBE콤보 (IOI18_combo)C++17
100 / 100
16 ms1756 KiB
#include "combo.h" #include<bits/stdc++.h> std::string guess_sequence(int N) { using namespace std; //guesing the first character // in three queries set<char> s={'A','X','B','Y'}; string ans; vector<int> v1={'A','X','B','Y'}; string q; q=v1[0];q+=v1[1]; if(press(q)>0){ q=v1[0];q+=v1[2]; if(press(q)>0) ans=v1[0]; else ans=v1[1]; } else{ q=v1[2]; if(press(q)==1) ans=v1[2]; else ans=v1[3]; } s.erase(ans[0]); if(N==1) return ans; vector<char> v={s.begin(),s.end()}; // ans contains prefix of my actual string for(int i=1;i<N-1;i++){ string q; //query at ith index(0 based) //lets say remaining three characters x,b,y // then i query for ans+xx+ans+xb+ans+xy+ans+y //if result==i then b appears // if result==i+2 then x appears // if result==i+1 then y appears for(int j=0;j<3;j++) q+=ans+v[0]+v[j]; q+=ans+v[1]; int res=press(q); if(res==i) ans+=v[2]; else if(res==i+2) ans+=v[0]; else ans+=v[1]; } for(int i=0;i<2;i++){ string q=ans+v[i]; if(press(q)==N) return q; } ans+=v[2]; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...