답안 #651089

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
651089 2022-10-17T02:55:18 Z _HDH Zagrade (COI20_zagrade) C++11
100 / 100
834 ms 896 KB
#include <bits/stdc++.h>

#ifdef LOCAL
#include <debug.h>
#else
#define debug(...) 1001
#endif

using namespace std;
#define all(x) x.begin(), x.end()
#define st first
#define nd second
#define lb lower_bound
#define ub upper_bound
#define sz(x) (int)x.size()
#define pb push_back
#define pob pop_back
#define pf push_front
#define pof pop_front
#define file "TEMPLATE"

typedef long long ll;
typedef pair<int, int> ii;
typedef array<int, 3> iii;
typedef vector<int> vi;
typedef vector<ll> vl;

bool const SINGLE_TEST = 1;

bool ask(int l, int r){
	cout << "? " << l << " " << r << "\n";
	cout.flush();
	bool ans; cin >> ans;
	return ans;
}

void answer(string s){
	cout << "!" << s << "\n";
	cout.flush();
}

void solve(){
	int n, q; cin >> n >> q;
	
	string s(n + 1, ' ');
	stack<int> st;
	for (int i = 1; i <= n; i++){
		if (!st.empty() && ask(st.top(), i)){
			s[st.top()] = '(';
			s[i] = ')';
			st.pop();
		}else st.push(i);
	}
	
	int z = st.size() / 2;
	while (!st.empty()){
		if (st.size() <= z) s[st.top()] = ')';
		else s[st.top()] = '(';
		st.pop();
	}
	answer(s);
}

int main(){
	ios_base::sync_with_stdio(0);//      the
	cin.tie(0);cout.tie(0);// 	    magical lines	
	// freopen(file".inp", "r", stdin);
	// freopen(file".out", "w", stdout);
	int t;
	if (SINGLE_TEST) t = 1;
	else cin >> t;
	while (t--) solve();
	return 0;
}//it's coding time!

Compilation message

zagrade.cpp: In function 'void solve()':
zagrade.cpp:57:17: warning: comparison of integer expressions of different signedness: 'std::stack<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   57 |   if (st.size() <= z) s[st.top()] = ')';
      |                 ^
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 5 ms 312 KB Output is correct
3 Correct 10 ms 308 KB Output is correct
4 Correct 11 ms 208 KB Output is correct
5 Correct 10 ms 208 KB Output is correct
6 Correct 12 ms 296 KB Output is correct
7 Correct 9 ms 208 KB Output is correct
8 Correct 7 ms 312 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 8 ms 324 KB Output is correct
3 Correct 9 ms 208 KB Output is correct
4 Correct 11 ms 208 KB Output is correct
5 Correct 7 ms 320 KB Output is correct
6 Correct 10 ms 208 KB Output is correct
7 Correct 7 ms 208 KB Output is correct
8 Correct 9 ms 316 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 414 ms 524 KB Output is correct
3 Correct 698 ms 524 KB Output is correct
4 Correct 761 ms 524 KB Output is correct
5 Correct 587 ms 520 KB Output is correct
6 Correct 614 ms 524 KB Output is correct
7 Correct 826 ms 808 KB Output is correct
8 Correct 592 ms 528 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 733 ms 896 KB Output is correct
3 Correct 452 ms 576 KB Output is correct
4 Correct 710 ms 768 KB Output is correct
5 Correct 834 ms 592 KB Output is correct
6 Correct 650 ms 888 KB Output is correct
7 Correct 760 ms 728 KB Output is correct
8 Correct 816 ms 524 KB Output is correct