Submission #641961

#TimeUsernameProblemLanguageResultExecution timeMemory
641961kebineZagrade (COI20_zagrade)C++17
0 / 100
673 ms648 KiB
#include <bits/stdc++.h> using namespace std; int n, q; char arr[100005]; int ask(int l, int r) { cout << "? " << l << " " << r << endl; int ret; cin >> ret; return ret; } int main() { cin >> n >> q; int sz = -1; vector<pair<int, int> > v; int l = 1, r = 2; while(r <= n) { int ret = ask(l, r); if (ret) { arr[l] = '('; arr[r] = ')'; pair<int, int> res = make_pair(l, r); while (sz >= 0 && v[sz].second >= res.first - 1) { v.pop_back(); sz--; } if (sz >= 0) { r++; l--; } else if(l > 1) { r++; l--; } else { r+=2; l = r - 1; } sz++; v.push_back(res); } else { r++; l = r - 1; } } cout << "! "; for(int i = 1; i <= n; i++) { cout << arr[i]; } cout << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...