Submission #1152475

#TimeUsernameProblemLanguageResultExecution timeMemory
1152475YSH2020Zagrade (COI20_zagrade)C++20
14 / 100
282 ms752 KiB
#include <bits/stdc++.h>
using namespace std;


int ans[100005];
void solve(int s, int e) {
  ans[s] = 0;
  ans[e] = 1;
  if (e-s < 3) return;
  int last = s;
  for (int i = s+1; i < e; i += 2) {
    cout << "? " << last+1 << ' ' << i+1 << '\n';
    int x; cin >> x;
    if (x == 1) {
      if (last+1 == i) {
        ans[last] = 0;
        ans[i] = 1;
        last = i+1;
      }
      else {
        ans[last] = 0;
        ans[i] = 1;
        solve(last+1, i-1);
        last = i+1;
      }
    }
  }
  if (last+1 == e) {
    ans[last] = 0;
    ans[e] = 1;
  }
  else {
    ans[last] = 0;
    ans[e] = 1;
    solve(last+1, e-1);
  }
}


int main() {
  int n, q; cin >> n >> q;
  //suppose this is a valid bracket sequence.
  solve(0, n-1);
  cout << "! ";
  for (int i = 0; i < n; i++) {
    if (ans[i] == 0) cout << '(';
    else cout << ')';
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...