Submission #577863

#TimeUsernameProblemLanguageResultExecution timeMemory
577863Markomafko972Art Collections (BOI22_art)C++17
100 / 100
1819 ms64732 KiB
#include <bits/stdc++.h> #include "art.h" using namespace std; void solve(int n) { vector<int> v[4005]; int a[4005]; for (int i = 0; i < n; i++) { v[i].clear(); for (int j = 0; j < n; j++) { v[i].push_back((i+j)%n+1); } a[i] = publish(v[i]); } vector<int> sol; for (int i = n-1; i >= 1; i--) { int p = 0, da = 0; for (int j = 0; j < n; j++) { while (p < n && (p <= j || a[p] == -1)) p++; if (p >= n) break; if (a[j] == -1) continue; if (a[p]-a[j] == i) { a[j] = -1; sol.push_back(j+1); da = 1; int d = 1, kol = 1; while (j-d >= 0) { if (a[j-d] != -1) { a[j-d] -= kol; kol++; } d++; } d = 1, kol = i; while (j+d < n) { if (a[j+d] != -1) { a[j+d] -= kol; kol--; } d++; } break; } } if (da == 0) { int poc = 0; while (a[poc] == -1) poc++; int kr = n-1; while (a[kr] == -1) kr--; if (a[poc]-a[kr] == i) { a[kr] = -1; sol.push_back(kr+1); int kol = 1; for (int j = kr-1; j >= poc; j--) { if (a[j] != -1) { a[j] -= kol; kol++; } } } else { while (1) { } } } } for (int i = 0; i < n; i++) { if (a[i] != -1) sol.push_back(i+1); } answer(sol); }

Compilation message (stderr)

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
#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...