Submission #1295223

#TimeUsernameProblemLanguageResultExecution timeMemory
1295223faricaThe 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 inc(int a, int b, int n) { if(a+b == n-1) return n-1; return (a+b)%(n-1); } void recSort(int n, vi &v) { if(n == 1) return; if(n == 2) { schedule(v[0], v[1]); vi tmp = visit(); return; } vi a,b; for(int i=0; i<n; ++i) { if(i<n/2) a.push_back(v[i]); else b.push_back(v[i]); } recSort((int)a.size(), a); recSort((int)b.size(), b); int tmp = log2(n)+2; for(int g=(1<<tmp); g>=1; g/=2) { vector<bool>vis(n,0); for(int j=0; j<n; ++j) { int x = inc(j, g, n); if(vis[x] or vis[j] or x == j) continue; vis[x] = vis[j] = 1; schedule(min(v[j],v[x]), max(v[j],v[x])); } vi tmp2 = visit(); vis.assign(n, 0); for(int j=inc(0,g,n); j<n; ++j) { int x = inc(j, g, n); if(vis[x] or vis[j] or x == j) continue; vis[x] = vis[j] = 1; schedule(min(v[j],v[x]), max(v[j],v[x])); } for(int j=0; j<inc(0,g,n); ++j) { int x = inc(j, g, n); if(vis[x] or vis[j] or x == j) continue; vis[x] = vis[j] = 1; schedule(min(v[j],v[x]), max(v[j],v[x])); } tmp2 = visit(); } } void solve(int N, int V) { vi v; for(int i=1; i<=N; ++i) v.push_back(i); recSort(N, v); reverse(v.begin(), v.end()); answer(v); }
#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...