Submission #557803

#TimeUsernameProblemLanguageResultExecution timeMemory
557803Yazan_AlattarZagrade (COI20_zagrade)C++14
100 / 100
837 ms924 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define F first #define S second #define pb push_back #define endl "\n" #define all(x) x.begin(), x.end() const int M = 500007; const ll inf = 2e9; const ll mod = 1e9 + 7; const double pi = acos(-1); const double eps = 1e-6; const int dx[] = {0, -1, 0, 1}, dy[] = {1, 0, -1, 0}; const int block = 320; vector <int> v; char ans[M]; int n, q; int ask(int l, int r){ cout << "? " << l << " " << r << endl; cout.flush(); int ret; cin >> ret; return ret; } int main(){ // ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> q; for(int i = 1; i <= n; ++i){ if(v.empty() || !ask(v.back(), i)) v.pb(i); else ans[v.back()] = '(', v.pop_back(), ans[i] = ')'; } int rem = v.size() / 2; while(rem--) ans[v.back()] = '(', v.pop_back(); while(v.size()) ans[v.back()] = ')', v.pop_back(); cout << "! "; for(int i = 1; i <= n; ++i) if(ans[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...