Submission #1207865

#TimeUsernameProblemLanguageResultExecution timeMemory
1207865jasonicThe Collection Game (BOI21_swaps)C++20
0 / 100
0 ms408 KiB
#include "swaps.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define fastIO cin.tie(0); ios::sync_with_stdio(false) #define cerr if(0) cerr vector<int> a; int n; void interact(int i, int j) { if(i >= n || j >= n) return; schedule(i+1, j+1); } int lg2(int n) { int res = 0; while(n != 1) {n>>=1; res++;} return res; } void solve(int N, int v) { n = N; int betN = 1<<lg2(n); if(betN < n) betN *= 2; a = vector<int>(n); for(int i = 0; i < n; i++) a[i] = i+1; for(int i = 1; i < betN; i <<= 1) { // block size cerr << i << '\n'; // across cerr << "across\n"; for(int j = 0; j*i*2 < n; j += 1) { for(int k = 0; k < i && k + j*i*2 < n; k++) { interact(j*i*2 + i - k - 1, k + j*i*2 + i); } } visit(); // fix subs if(i != 1) { cerr << "fix subs\n"; for(int j = 1; j < i; j <<= 1) { // gap size cerr << j << '\n'; cerr << "fix miniacross\n"; for(int k = 0; k*j*2 < n; k += 1) { // gap jumps for(int l = 0; l < j && l + k*j*2 < n; l++) { // blocks interact(k*j*2 + j - l - 1, l + k*j*2 + j); } } visit(); } for(int j = i/2; j >= 1; j >>= 1) { // gap size cerr << j << '\n'; cerr << "fix miniacross\n"; for(int k = 0; k*j*2 < n; k += 1) { // gap jumps for(int l = 0; l < j && l + k*j*2 < n; l++) { // blocks interact(k*j*2 + j - l - 1, l + k*j*2 + j); } } visit(); } } } answer(a); }
#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...