Submission #1044267

#TimeUsernameProblemLanguageResultExecution timeMemory
1044267vjudge1Zagonetka (COI18_zagonetka)C++17
9 / 100
43 ms344 KiB
#include <bits/stdc++.h> using namespace std; int query(vector<int> v) { int x; cout<<"query"; for (int i:v) cout<<' '<<i; cout<<endl; cin>>x; return x; } signed main() { int n; cin>>n; int x; for (int i=0;i<n;i++) cin>>x; vector<int> ans,ans1; if (n<=6) { vector<int> v; for (int i=1;i<=n;i++) v.push_back(i); do { if (query(v)) { if (ans.empty()) ans=v; ans1=v; } }while(next_permutation(v.begin(),v.end())); } else { int pi=-1,pj=-1; vector<int> v; for (int i=1;i<=n;i++) v.push_back(i); x=query(v); ans=ans1=v; reverse(ans1.begin(),ans1.end()); if (!x) { int cnt[n]={},mx=0; for (int i=0;i<n;i++) for (int j=i+1;j<n;j++) { swap(v[i],v[j]); if (query(v)) cnt[i]++,cnt[j]++,mx=max(mx,max(cnt[i],cnt[j])); swap(v[i],v[j]); } for (int i=n-1;i>=0;i--) if (cnt[i]==mx) pi=i; for (int i=0;i<n;i++) if (cnt[i]) pj=i; for (int i=pi+1;i<=pj;i++) swap(ans[i],ans[i-1]); } else { v=ans1; int cnt[n]={},mx=0; for (int i=0;i<n;i++) for (int j=i+1;j<n;j++) { swap(v[i],v[j]); if (query(v)) cnt[i]++,cnt[j]++,mx=max(mx,max(cnt[i],cnt[j])); swap(v[i],v[j]); } for (int i=0;i<n;i++) if (cnt[i]==mx) pj=i; for (int i=n-1;i>=0;i--) if (cnt[i]) pi=i; for (int i=pi+1;i<=pj;i++) swap(ans1[i],ans1[i-1]); } } cout<<"end\n"; for (int i=0;i<n-1;i++) cout<<ans[i]<<' '; cout<<ans.back()<<'\n'; for (int i=0;i<n-1;i++) cout<<ans1[i]<<' '; cout<<ans1.back()<<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...