Submission #1112147

#TimeUsernameProblemLanguageResultExecution timeMemory
1112147vako_pZagrade (COI20_zagrade)C++14
0 / 100
9 ms592 KiB
#include <bits/stdc++.h> using namespace std; #define ll int #define pb push_back const int mxN = 1e6 + 5; ll n,a[mxN]; stack<ll> st; string s; ll check(ll a, ll b){ assert(a < b); ll curr = 0; for(int i = a - 1; i < b; i++){ if(s[i] == '(') curr++; else curr--; if(curr < 0){ cout << 0 << endl; return 0; } } if(curr != 0){ cout << 0 << endl; return 0; } cout << 1 << endl; return 1; } void init(){ cin >> s; // for(int i = 0; i < n / 2; i++) s += "()"; // random_device rd; // mt19937_64 gen(rd()); // uniform_int_distribution<ll> dis(0, n - 1); // for(int i = 1; i < n - 1; i++) swap(s[i], s[dis(gen)]); // cout << s << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; // init(); ll cnt = n / 2; st.push(1); for(int i = 2; i <= n; i++){ ll l = st.top(); cout << "? " << l << ' ' << i << endl; ll ans; cin >> ans; // ans = check(l, i); if(ans){ a[l] = 1; a[i] = 2; cnt--; st.pop(); } else st.push(i); if(st.empty()) st.push(++i); } ll val = 2; cout << "! "; for(int i = 1; i <= n; i++){ if(!a[i]){ cnt--; a[i] = val; if(cnt == 0) val = 1; } if(a[i] == 1) cout << '('; else cout << ')'; } cout.flush(); // cout << endl << " " << s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...