제출 #1152377

#제출 시각아이디문제언어결과실행 시간메모리
1152377itslqZagrade (COI20_zagrade)C++20
71 / 100
254 ms3552 KiB
#include <bits/stdc++.h> using namespace std; bool query(int l, int r) { bool v; cout << "? " << l << " " << r << endl; cin >> v; return v; } int main() { int N, Q; cin >> N >> Q; vector<int> ans(N + 5, 0), psum(N + 5, 0); map<int, int> memo; memo[0] = 0; ans[1] = psum[1] = 1; ans[N] = -1; for (int i = 1; i < N; i++) { memo[psum[i] = ans[i] + psum[i - 1]] = i; if (ans[i] == 1) { if (query(i, i + 1)) { ans[i + 1] = -1; } else { ans[i + 1] = 1; } } else { if (memo.find(psum[i] - 1) != memo.end()) { if (query(memo[psum[i] - 1] + 1, i + 1)) { ans[i + 1] = -1; } else { ans[i + 1] = 1; } } else { ans[i + 1] = 1; } } } cout << "! "; for (int i = 1; i <= N; i++) { if (ans[i] == 1) cout << "("; else cout << ")"; } 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...