Submission #780465

#TimeUsernameProblemLanguageResultExecution timeMemory
780465devariaotaZagrade (COI20_zagrade)C++17
0 / 100
648 ms1200 KiB
#include <bits/stdc++.h> using namespace std; # define int long long # define fir first # define sec second # define pb push_back const int cnst = 2e5+5; bool mutipletestcase = 0; bool debug = 0; string checker; int find(int x, int y) { int temp = 0; for(int i = x-1; i<y; i++) { if(checker[i] == '(') temp++; else temp--; if(temp < 0) return 0; } return temp == 0; } int ask(int l, int r) { cout << "? " << l << " " << r << endl; int a; if(!debug) cin >> a; else a = find(l, r); return a; } void solve() { int n, q; cin >> n >> q; char ans[n+5]; // )) (( )( for(int i = 1; i<=n; i++) ans[i] = '*'; if(debug) cin >> checker; stack<int> st; st.push(1); st.push(1); int fre = 0; for(int i = 2; i<=n; i++) { bool a = ask(st.top(), i); if(a) { ans[st.top()] = '('; ans[i] = ')'; fre++; } else st.push(i); } int need = n/2-fre; cout << "! "; for(int i = 1; i<=n; i++) { if(ans[i] == '*') { if(need) { need--; cout << ')'; } else cout << '('; } else cout << ans[i]; } } signed main() { ios_base::sync_with_stdio(false); int t = 1; if(mutipletestcase) cin >> t; while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...