제출 #298633

#제출 시각아이디문제언어결과실행 시간메모리
298633AmineTrabelsi콤보 (IOI18_combo)C++17
94 / 100
42 ms568 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define v(x) vector<x> #define pb push_back #define mp make_pair const ll maxint=2e18; const ll minint =-2e18; /* (͡ ° ͜ʖ ͡ °): Hi, be careful of overflow. */ int press(string p); /* // comment out when submitting int cnt = 0; int n; int press(string p){ cnt++; cout<<p<<endl; if((int)p.size() > n*4){ cout<<"Failed press n="<<(int)p.size()<<endl; exit(0); } int x; cin>>x; return x; } */ string let[4]={"A","B","X","Y"}; string guess_sequence(int N){ //n=N; string res =""; int avoid = 0; for(int j=0;j<4;j++){ int x = press((res+let[j])); if(x == 1){ res+=let[j]; avoid = j; break; } } vector<string> lett; for(int i=0;i<4;i++)if(i!=avoid)lett.push_back(let[i]); int i=1; for(;i<N-1;i++){ int x = press((res+lett[0]+lett[0]+res+lett[0]+lett[1]+res+lett[0]+lett[2]+res+lett[1])); if(x == i+2){ res+=lett[0]; }else if(x == i+1){ res+=lett[1]; } else{ res += lett[2]; } } if(i < N){ int x = press(res+lett[0]+res+lett[1]); if(x == i+1){ x = press(res+lett[0]); if(x == i+1){ res+=lett[0]; }else res+=lett[1]; }else{ res += lett[2]; } } return res; } //* Notes: //* the first character of S never reappears in it // comment out when submitting /* int main(){ int n; cin>>n; cout<<guess_sequence(n)<<'\n'; cout<<cnt<<endl; return 0; }*/ /* 5 YABAB */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...