Submission #1106816

#TimeUsernameProblemLanguageResultExecution timeMemory
11068160pt1mus23Zagrade (COI20_zagrade)C++14
100 / 100
775 ms1904 KiB
#include <bits/stdc++.h> #include <cassert> using namespace std; #define int long long int #define ins insert #define pb push_back // #define endl '\n' #define putr(x) cout<<x<<endl;return; #define all(x) x.begin(),x.end() const int mod = 1e9 +7, sze = 5e5 +5, inf = INT_MAX, LL = 30; int ask(int l,int r){ cout<<"? "<<l<<" "<<r<<endl; int x;cin>>x; return x; } void rush(){ int n,q; cin>>n>>q; vector<char> ans(n+10,'_'); stack<int> st; for(int i=1;i<=n;i++){ if(st.empty()){ st.push(i); } else{ int x = st.top(); if(ask(x,i)){ ans[x]='('; ans[i]=')'; st.pop(); } else{ st.push(i); } } } int qal =0; for(int i=1;i<=n;i++){ if(ans[i]=='_'){ qal++; } } qal/=2; for(int i = n;i>=1;i--){ if(ans[i]=='_'){ if(qal){ qal--; ans[i]='('; } else{ ans[i]=')'; } } } string res=""; for(int i=1;i<=n;i++) res+=ans[i]; cout<<"! "<<res<<endl; } signed main(){ ios::sync_with_stdio(0); cin.tie(0); int tt = 1; // cin>>tt; while(tt--){ rush(); } 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...