Submission #1069384

#TimeUsernameProblemLanguageResultExecution timeMemory
1069384BigBadBullyCOVID tests (CEOI24_covid)C++17
10 / 100
7016 ms344 KiB
// Online C++ compiler to run C++ program online #include <bits/stdc++.h> using namespace std; #define int long long #define ff first #define ss second int n,t; bool guess(int l,int r){ cout << "Q "; for (int i = 0; i < n; i++) { if (i >= l && i <= r) cout << '1'; else cout << '0'; } cout << endl; char la; cin >> la; if (la == 'P') return 1; else return 0; } void calc(vector<bool>& mask, int l, int r) { if (l==r) { mask[l] = 1; return; } int mid = l+r>>1; if (guess(l,mid)) calc(mask,l,mid); if (guess(mid+1,r)) calc(mask,mid+1,r); } void linear(vector<bool>&mask,int mile) { int prev = 0; while(prev<n) { if (guess(prev,min(n-1,prev+mile))) for (int i = prev;i <= min(n-1,prev+mile); i++) if (guess(i,i)) mask[i] = 1; prev = min(n,prev+mile+1); } } signed main() { double p; cin >> n >> p >> t; double tte = 1/p; int mile = (int)tte; while(t--) { int prev = 0; vector<bool> mask(n,0); if (mile < 10) { linear(mask,mile); } else if (mile < 100) { calc(mask,0,n-1); } else while(prev < n) { int l = prev, r = min(n-1,prev+max(4ll,mile)); if (!guess(l,r)) { prev = r+1; continue; } while (r-l>1) { int mid = l+r>>1; if (guess(prev,mid)) r = mid; else l = mid; } if (guess(l,l)) { mask[l] = 1; prev = r; } else { mask[r] = 1; prev = r+1; } } cout << "A "; for (int i = 0; i < n; i++) cout << (char)(mask[i]+'0'); cout << endl; char c; cin >> c; if (c=='C') continue; else break; } }

Compilation message (stderr)

Main.cpp: In function 'void calc(std::vector<bool>&, long long int, long long int)':
Main.cpp:33:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   33 |     int mid = l+r>>1;
      |               ~^~
Main.cpp: In function 'int main()':
Main.cpp:84:28: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   84 |                 int mid = l+r>>1;
      |                           ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...