Submission #1122437

#TimeUsernameProblemLanguageResultExecution timeMemory
112243712345678Zagrade (COI20_zagrade)C++17
100 / 100
346 ms1588 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") using namespace std; const int nx=1e5+5; int n, q, cnt, res[nx], x, jmp[nx], f[nx], qcnt=0; int query(int l, int r) { cout<<"? "<<l<<' '<<r<<'\n'; fflush(stdout); cin>>x; return x; } void solve(int l, int r) { if (l<1||r>n||res[r]||f[r]) return; if (res[l]) { solve(jmp[l], r); if (jmp[jmp[l]]) jmp[l]=jmp[jmp[l]]; return; } if (query(l, r)) res[l]=1, res[r]=2, jmp[r]=l-1, cnt+=2, solve(l-1, r+1); else f[r]=1; } int main() { cin>>n>>q; for (int i=1; i<=n; i++) { solve(i, i+1); } cnt=(n-cnt)/2; for (int i=1; i<=n; i++) { if (!res[i]&&cnt>0) cnt--, res[i]=2; else if (!res[i]) res[i]=1; } //cout<<'\n'; cout<<"! "; for (int i=1; i<=n; i++) cout<<((res[i]==1)?'(':')'); fflush(stdout); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...