Submission #1247113

#TimeUsernameProblemLanguageResultExecution timeMemory
1247113lambd47COVID tests (CEOI24_covid)C++20
10 / 100
7015 ms412 KiB
#include <bits/stdc++.h> using namespace std; #define sz(v) ((int)(v).size()) #define all(v) (v).begin(), (v).end() #define L(i, j, k) for(int i = (j); i <= (k); ++i) #define R(i, j, k) for(int i = (j); i >= (k); --i) std::mt19937 rng(std::chrono::steady_clock::now().time_since_epoch().count()); int n;double p; void solve() { int block=(double)(1)/p;//ver melhor constante if(block==0)block=1; block=__lg(block); block=(1<<(block)); vector<int> resp(n,0); vector<int> aux(n,0); auto ask=[&](int l, int r)->bool{ L(i,l,r)aux[i]=1; cout<<"Q "; L(i,0,n-1)cout<<aux[i]; cout<<endl; L(i,l,r)aux[i]=0; char c;cin>>c; return c=='P'; }; auto busca=[&](auto&& self, int l, int r)->void{ int m=(l+r)/2; if(l==r){ resp[l]=1; return; } if(ask(l,m))self(self,l,m); if(ask(m+1,r))self(self,m+1,r); return; }; if(ask(0,n-1))busca(busca,0,n-1); cout<<"A "; for(auto a:resp)cout<<a; cout<<endl; char c;cin>>c; } int32_t main() { int T = 1; // std::cin >> T; cin>>n>>p>>T; while(T--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...