Submission #444415

#TimeUsernameProblemLanguageResultExecution timeMemory
444415blueThe Collection Game (BOI21_swaps)C++17
0 / 100
1 ms200 KiB
#include "swaps.h" #include <vector> #include <iostream> using namespace std; int N; int V; vector<int> r; void do_comparisons(vector<int> A, vector<int> B) { for(int i = 0; i < A.size(); i++) { schedule(r[ A[i] ], r[ B[i] ]); } vector<int> C = visit(); for(int i = 0; i < A.size(); i++) { if(C[i] == 0) swap(r[ A[i] ], r[ B[i] ]); } } void solve(int n, int v) { N = n; V = v; r = vector<int>(N); for(int i = 1; i <= N; i++) r[i - 1] = i; // for(int v = 1; v <= min(V, N); v++) // { // vector<int> A, B; // if(v % 2 == 0) // { // for(int i = 0; i+1 < N; i += 2) // { // A.push_back(i); // B.push_back(i+1); // } // } // else // { // for(int i = 1; i+1 < N; i += 2) // { // A.push_back(i); // B.push_back(i+1); // } // } // // do_comparisons(A, B); // } for(int X = 2; X <= N; X *= 2) { // cerr << "X = " << X << '\n'; int p = 0, q = X-1; vector<int> A, B; while(p < N) { for(int i = 0; i < X/2; i++) { if(p + i < N && 0 <= q - i && q - i < N) { A.push_back(p + i); B.push_back(q - i); } } p += X; q += X; } do_comparisons(A, B); A.clear(); B.clear(); for(int Y = X/2; Y >= 2; Y /= 2) { for(int i = 0; i + Y/2 < N; i++) { if((i / (Y/2)) % 2 == 0) { A.push_back(i); B.push_back(i + Y/2); } } do_comparisons(A, B); A.clear(); B.clear(); } } answer(r); }

Compilation message (stderr)

swaps.cpp: In function 'void do_comparisons(std::vector<int>, std::vector<int>)':
swaps.cpp:13:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for(int i = 0; i < A.size(); i++)
      |                    ~~^~~~~~~~~~
swaps.cpp:20:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |     for(int i = 0; i < A.size(); i++)
      |                    ~~^~~~~~~~~~
#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...