제출 #1197848

#제출 시각아이디문제언어결과실행 시간메모리
1197848user736482COVID tests (CEOI24_covid)C++20
100 / 100
1034 ms432 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define POT (1<<20) #define INFL 1000000000000000099 ll n,t,skok; string p; map<string,ll>mp; char ch; ll zap(ll l,ll r){ string s=""; for(ll j=0;j<l;j++)s.pb('0'); for(ll j=l;j<=r;j++)s.pb('1'); while(s.size()!=n)s.pb('0'); cout<<"Q "<<s<<endl; cin>>ch; return ch=='P'; } void solve(){ string ans; for(ll i=0;i<n;i++)ans.pb('0'); for(ll i=0;i<n;i+=skok){ if(zap(i,min(n-1,i+skok-1))){ ll pocz=i; ll kon=min(n-1,i+skok-1); while(pocz!=kon){ ll mid=(pocz+kon-1)/2; if(zap(pocz,mid)){ kon=mid; } else{ pocz=mid+1; } } ans[pocz]='1'; i=pocz+1-skok; } } cout<<"A "<<ans<<endl;cin>>ch; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>p>>t; mp["0.2"]=3; mp["0.158765"]=4; mp["0.104571"]=7; mp["0.068648"]=9; mp["0.039856"]=16; mp["0.028545"]=20; mp["0.011546"]=64; mp["0.005256"]=256; mp["0.001"]=1024; skok=mp[p]; if(!skok)skok=1; while(t--)solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...