Submission #1038049

#TimeUsernameProblemLanguageResultExecution timeMemory
1038049ttamxIslands (IOI08_islands)C++17
0 / 100
4123 ms131076 KiB
#include <bits/stdc++.h> using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int n,t,k; double p; string ans; int ask(int l,int r){ string s(n,'0'); for(int i=l;i<=r;i++)s[i]='1'; cout << "Q " << s << endl; char res; cin >> res; return res=='P'; } void solve(int l,int r){ if(l==r)return void(ans[l]='1'); int m=(l+r)/2; bool found=false; if(rng()&1){ if(ask(l,m)){ solve(l,m); found=true; } if(!found||ask(m+1,r)){ solve(m+1,r); } }else{ if(ask(m+1,r)){ solve(m+1,r); found=true; } if(!found||ask(l,m)){ solve(l,m); } } } void runcase(){ ans=string(n,'0'); for(int l=0,r=k-1;l<n;l+=k,r+=k){ r=min(r,n-1); if(ask(l,r))solve(l,r); } cout << "A " << ans << endl; string s; cin >> s; } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> p >> t; double q=1-p,r=q; k=1; while(r>0.5&&k<n){ r*=q; k++; } while(t--)runcase(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...