#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;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
ll cnt = n / 2;
st.push(1);
for(int i = 2; i <= n;){
ll l = st.top();
cout << "? " << l << ' ' << i << endl;
ll ans;
cin >> ans;
if(ans){
a[l] = 1;
a[i] = 2;
cnt--;
st.pop();
}
else st.push(i);
if(st.empty()) st.push(++i);
i++;
}
ll val = 2;
cout << "! ";
for(int i = 1; i <= n; i++){
if(!a[i]){
cnt--;
a[i] = val;
if(cnt == 0) val = 1;
}
cout << ((a[i] == 1) ? ( '(' ) : ( ')' ));
}
cout.flush();
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
336 KB |
Output is correct |
2 |
Correct |
5 ms |
336 KB |
Output is correct |
3 |
Incorrect |
9 ms |
336 KB |
Mismatch at position 2. Expected (, found ) |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
336 KB |
Mismatch at position 1. Expected ), found ( |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
336 KB |
Mismatch at position 2. Expected (, found ) |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
336 KB |
Mismatch at position 1. Expected ), found ( |
2 |
Halted |
0 ms |
0 KB |
- |