Submission #1286070

#TimeUsernameProblemLanguageResultExecution timeMemory
1286070WH8Art Collections (BOI22_art)C++20
100 / 100
718 ms480 KiB
#include "art.h" #include <bits/stdc++.h> using namespace std; void solve(int n) { vector<int> ans(n, 0); int p=0; vector<int> ord(n); iota(ord.begin(),ord.end(), 1); p=publish(ord); vector<bool> in(n+1, 0); for(int i=0;i<n-1;i++){ for(int j=1;j<=n;j++){ ord[(i+j)%n]=j; } int c=publish(ord); int delta=c-p; ans[n-i-1]=(n-delta+1)/2; //~ printf("p %d, c %d, del %d, ans %d\n", p,c,delta, ans[n-i-1]); //~ fflush(stdout); assert(in[ans[n-i-1]]==false); in[ans[n-i-1]]=true; p=c; } for(int i=1;i<=n;i++){ if(!in[i]){ ans[0]=i; } } assert(ans[0]!=0); vector<int> f(n); for(int i=0;i<n;i++){ f[n-ans[i]]=i+1; } answer(f); } /* 5 5 3 2 1 4 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...