Submission #1295082

#TimeUsernameProblemLanguageResultExecution timeMemory
1295082faricaThe Collection Game (BOI21_swaps)C++20
0 / 100
1 ms400 KiB
#include <bits/stdc++.h> #include "swaps.h" using namespace std; using vi = vector<int>; using pi = pair<int,int>; int n; int inc(int a, int b) { if(a+b == n) return n; return (a+b)%n; } void solve(int N, int V) { n = N; vi cnt(n+1, 0); for(int i=1; i<N; ++i) { vector<bool>vis(N+1, 0); vector<pi>tmp; for(int j=1; j<=N; ++j) { if(vis[j] or vis[inc(j,i)]) continue; schedule(j, inc(j,i)); vis[j] = vis[inc(j,i)] = 1; tmp.push_back({j, inc(j,i)}); } vi ans = visit(); for(int j=0; j<ans.size(); ++j) cnt[tmp[j].first] += 1-ans[j]; tmp.clear(); vis.assign(N+1, 0); for(int j=i+1; j<=N; ++j) { if(vis[j] or vis[inc(j,i)]) continue; schedule(j, inc(j,i)); vis[j] = vis[inc(j,i)] = 1; tmp.push_back({j, inc(j,i)}); } for(int j=1; j<=i; ++j) { if(vis[j] or vis[inc(j,i)]) continue; schedule(j, inc(j,i)); vis[j] = vis[inc(j,i)] = 1; tmp.push_back({j, inc(j,i)}); } vi ans2 = visit(); for(int j=0; j<ans2.size(); ++j) cnt[tmp[j].first] += 1-ans2[j]; } vi ans(n, 0); for(int i=1; i<=n; ++i) { ans[cnt[i]] = i; } answer(ans); }
#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...
#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...