Submission #640577

#TimeUsernameProblemLanguageResultExecution timeMemory
640577KindaNamelessZagrade (COI20_zagrade)C++14
100 / 100
892 ms1192 KiB
#include<algorithm> #include<iostream> #include<assert.h> #include<iomanip> #include<cstring> #include<numeric> #include<string> #include<vector> #include<bitset> #include<queue> #include<stack> #include<deque> #include<cmath> #include<map> #include<set> using namespace std; #define ll long long #define ld long double bool ask(int a, int b){ cout << "? " << a << " " << b << "\n"; cout << flush; bool ret; cin >> ret; return ret; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, Q; cin >> N >> Q; string s = ""; vector<int> st; vector<bool> valid(N+1); for(int i = 1; i <= N; ++i){ if(st.empty()){ st.push_back(i); s += '('; continue; } bool q = ask(st.back(), i); if(q){ valid[st.back()] = 1; valid[i] = 1; st.pop_back(); s += ')'; } else{ st.push_back(i); s += '('; } } assert((int)st.size() % 2 == 0); for(int i = 0; i < (int)st.size()/2; ++i){ s[st[i]-1] = ')'; } cout << "! " << s << "\n"; cout << flush; 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...