Submission #1015875

#TimeUsernameProblemLanguageResultExecution timeMemory
101587512345678Zagrade (COI20_zagrade)C++17
0 / 100
255 ms344 KiB
#include <bits/stdc++.h> using namespace std; const int nx=1e5+5; int n, res[nx], x, q; int query(int l, int r) { cout<<"? "<<l<<' '<<r<<'\n'; fflush(stdout); cin>>x; return x; } void fillres(int l, int r) { //cout<<"Debug "<<l<<' '<<r<<'\n'; int md=(l+r)/2; for (int i=l; i<=md; i++) res[i]=1; } void solve2(int l, int r) { if (r<l) return; if (l+1==r) return res[l]=1, void(); int lst=l; for (int i=l+1; i<r; i+=2) if (query(l, i)) fillres(lst, i), lst=i+1; fillres(lst, r); } void solve1(int l, int r) { if (r==l+1) return res[l]=1, void(); for (int i=l+1; i<r; i+=2) if (query(l, i)) return solve2(l+1, i-1), solve1(i+1, r), void(); res[l]=1; solve2(l+1, r-1); } int main() { cin>>n>>q; solve1(1, n); cout<<"! "; for (int i=1; i<=n;i ++) cout<<(res[i]?'(':')'); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...