Submission #444426

#TimeUsernameProblemLanguageResultExecution timeMemory
444426blueThe Collection Game (BOI21_swaps)C++17
0 / 100
0 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) { vector<int> a, b; for(int i = 0; i < A.size(); i++) { if(0 <= A[i] && A[i] < N && 0 <= B[i] && B[i] < N) { a.push_back(A[i]); b.push_back(B[i]); } } if(a.size() == 0) return; for(int i = 0; i < a.size(); i++) { schedule(r[ a[i] ], r[ a[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:15:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int i = 0; i < A.size(); i++)
      |                    ~~^~~~~~~~~~
swaps.cpp:26:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for(int i = 0; i < a.size(); i++)
      |                    ~~^~~~~~~~~~
swaps.cpp:33:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |     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...