Submission #391659

#TimeUsernameProblemLanguageResultExecution timeMemory
391659ronnithZagrade (COI20_zagrade)C++14
0 / 100
3077 ms4928 KiB
#include <bits/stdc++.h> using namespace std; int n, q; inline bool query(int l, int r) { cout << "? " << l << ' ' << r << endl; bool res; cin >> res; return res; } int main() { cin >> n >> q; set<int> pos; for(int i = 1;i <= n;i ++) { pos.insert(i); } char ans[n+1]; ans[n] = '\0'; auto it = pos.begin(); while(it != (--pos.end())) { auto crr = (it++); if(query(*crr, *it)) { ans[(*crr) - 1] = '('; ans[(*it) - 1] = ')'; pos.erase(it); it = (crr--); pos.erase(it); it = crr; } if((int)pos.size() == 0) { break; } } if((int)pos.size()) { it = pos.begin(); for(int rep = 0;rep < (int)pos.size() / 2;rep ++) { ans[(*it)-1] = ')'; } while(it != pos.end()) { ans[(*it)-1] = '('; } } string out = ans; cout << "! " << out << '\n'; 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...