Submission #334042

#TimeUsernameProblemLanguageResultExecution timeMemory
334042limabeansZagrade (COI20_zagrade)C++17
100 / 100
961 ms1400 KiB
#include <bits/stdc++.h> using namespace std; template<typename T> void out(T x) { cout << x << endl; exit(0); } #define watch(x) cout << (#x) << " is " << (x) << endl using ll = long long; const int maxn = 1e6 + 5; int n, q; char ans[maxn]; int ask(int l, int r) { cout<<"? "; cout<<l+1<<" "<<r+1<<endl; int x; cin>>x; return x; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>q; vector<int> stk; for (int i=0; i<n; i++) { if (stk.empty()) { stk.push_back(i); continue; } int res = ask(stk.back(), i); if (res==1) { ans[stk.back()]='('; ans[i]=')'; stk.pop_back(); } else { stk.push_back(i); } } int len = stk.size(); assert(len%2==0); for (int i=0; i<len; i++) { if (i<len/2) { ans[stk[i]]=')'; } else { ans[stk[i]]='('; } } cout<<"! "; for (int i=0; i<n; i++) { cout<<ans[i]; } cout<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...