제출 #651090

#제출 시각아이디문제언어결과실행 시간메모리
651090_HDHZagrade (COI20_zagrade)C++11
71 / 100
921 ms660 KiB
#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!

컴파일 시 표준 에러 (stderr) 메시지

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()] = '(';
      |                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...