제출 #320896

#제출 시각아이디문제언어결과실행 시간메모리
320896dolphingarlicZagrade (COI20_zagrade)C++14
100 / 100
1244 ms888 KiB
#include <bits/stdc++.h>
using namespace std;

bool guess(int a, int b) {
	cout << "? " << a << ' ' << b << endl;
	bool res;
	cin >> res;
	return res;
}

char ans[100001];

int main() {
	int n, q, rem;
	cin >> n >> q;
	rem = n / 2;
	stack<int> stck;
	for (int i = 1; i <= n; i++) {
		if (!stck.size()) stck.push(i);
		else if (guess(stck.top(), i)) {
			ans[stck.top()] = '(';
			ans[i] = ')';
			stck.pop();
			rem--;
		} else stck.push(i);
	}
	cout << "! ";
	for (int i = 1; i <= n; i++) {
		if (ans[i] == '(' || ans[i] == ')') cout << ans[i];
		else if (rem) {
			cout << ')';
			rem--;
		} else cout << '(';
	}
	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...