Submission #1003974

#TimeUsernameProblemLanguageResultExecution timeMemory
1003974vjudge1Zagrade (COI20_zagrade)C++17
71 / 100
587 ms1524 KiB
#include<bits/stdc++.h> using namespace std; //cout.flush(); const int MAXN=100010; int resp[MAXN]; int main(){ int n, q; cin >> n >> q; cout << "? 1 " << n << endl; //std::cout << std::flush; int ehVal; cin >> ehVal; if(ehVal){ resp[1] = 1; int a = 1, f = 0; stack <int> s; s.push(1); int l = 1; for(int i=2; i<n; i++){ if(l==0){ a++; resp[i] = 1; s.push(i); l = i; continue; } cout << "? " << l << " " << i << endl; //std::cout << std::flush; int val; cin >> val; if(val){ f++; resp[i] = 2; s.pop(); if(s.empty()) l = 0; else l = s.top(); } else{ a++; resp[i] = 1; s.push(i); l = i; } } resp[n] = 2; cout << "! "; for(int i=1; i<=n; i++){ if(resp[i]==1) cout << "("; else cout << ")"; } return 0; } int a= 0, b = 0; for(int i=1; i<=n; i++){ for(int j=i+1; j<=n; j++){ if((j-i)%2==0) continue; cout << "? " << i << " " << j << endl; int val; cin >> val; if(val){ resp[i] = 1; resp[j] = 2; a++; b++; } } } for(int i=1; i<=n; i++){ if(resp[i]==0){ if(b==n/2){ resp[i] = 1; a++; } else{ resp[i] = 2; b++; } } } cout << "! "; for(int i=1; i<=n; i++){ if(resp[i]==1) cout << "("; else cout << ")"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...