Submission #997161

#TimeUsernameProblemLanguageResultExecution timeMemory
997161oscarsierra12Zagrade (COI20_zagrade)C++14
57 / 100
1198 ms1268 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<ll> vll; const ll mod=1e9+7; const ll maxn=1e5+5; const int INF=1e9+5; #define ok ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define fi first #define se second #define pb push_back #define ub upper_bound #define lb lower_bound #define endl '\n' int bk, ttp, jwb, rem, nah[maxn]; stack<int> st; char ans[maxn]; ll n, q; int main() { ok cin >> n >> q; if(q==(n*n)/4) { rem=0; memset(nah, 0, sizeof nah); for(int i=1; i<n; i++) { for(int j=i+1; j<=n; j+=2) { cout << "? " << i << " " << j << endl; cout.flush(); cin >> jwb; if(jwb==1) { nah[i]=1; nah[j]=2; } } } for(int i=1; i<=n; i++) { if(!nah[i]) { rem++; } } rem/=2; for(int i=1; i<=n; i++) { if(rem && !nah[i]) { nah[i]=2; rem--; } else if(!nah[i]) nah[i]=1; } cout << "! "; for(int i=1; i<=n; i++) { if(nah[i]==1) cout << '('; else cout << ')'; } cout << endl; return 0; } for(int i=1; i<=n; i++) { if(st.empty()) { ans[i]='('; st.push(i); continue; } cout << "? " << st.top() << " " << i << endl; cout.flush(); cin >> jwb; if(jwb==1) { ans[i]=')'; st.pop(); } else { ans[i]='('; st.push(i); } } cout << "! "; for(int i=1; i<=n; i++) { cout << ans[i]; } cout << endl; 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...