Submission #312580

#TimeUsernameProblemLanguageResultExecution timeMemory
312580LawlietZagrade (COI20_zagrade)C++17
100 / 100
1055 ms1340 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 100010; int n, q; string ans; bool query(int L, int R) { L++; R++; cout << "? " << L << " " << R << endl; int a; cin >> a; return a; } void answer() { cout << "! " << ans << endl; exit(0); } int main() { cin >> n >> q; ans.resize( n ); vector<int> s( 1 , 0 ); for(int i = 1 ; i < n ; i++) { if( query( s.back() , i ) ) { ans[ s.back() ] = '('; ans[i] = ')'; s.pop_back(); } else s.push_back( i ); } int qtd = (int)s.size(); qtd /= 2; for(int i = 0 ; i < qtd ; i++) ans[ s.back() ] = '(', s.pop_back(); for(int i = 0 ; i < qtd ; i++) ans[ s.back() ] = ')', s.pop_back(); answer(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...