Submission #597785

#TimeUsernameProblemLanguageResultExecution timeMemory
597785yanndevArt Collections (BOI22_art)C++17
100 / 100
1589 ms636 KiB
#include <art.h> #include <bits/stdc++.h> using namespace std; void solve(int n) { vector<int> posOfVal(n, -1); // 0 indexed ranks // newInv = oldInv - (rank) + (n - rank - 1) // newInv = oldInv - (2 * rank) + (n - 1) // rank = -(newInv - oldInv - (n - 1)) / 2 vector<int> ls (n); for (int i = 0; i < n; i++) ls[i] = i + 1; int firstInv = publish(ls); int oldInv = firstInv; for (int i = 0; i < n; i++) { rotate(ls.begin(), ls.begin() + 1, ls.end()); int newInv = firstInv; if (i + 1 < n) newInv = publish(ls); posOfVal[i + 1] = -(newInv - oldInv - (n - 1)) / 2; oldInv = newInv; } vector<int> ans (n, -1); for (int i = 1; i <= n; i++) ans[posOfVal[i]] = i; answer(ans); }

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...