Submission #602481

#TimeUsernameProblemLanguageResultExecution timeMemory
602481shrimbArt Collections (BOI22_art)C++17
35 / 100
203 ms2768 KiB
#include "art.h" #include"bits/stdc++.h" // #include "ranges" using namespace std; // // --- Sample implementation for the task art --- // // To compile this program with the sample grader, place: // art.h art_sample.cpp sample_grader.cpp // in a single folder, then open the terminal in this directory (right-click onto an empty spot in the directory, // left click on "Open in terminal") and enter e.g.: // g++ -std=c++17 art_sample.cpp sample_grader.cpp // in this folder. This will create a file a.out in the current directory which you can execute from the terminal // as ./a.out // See task statement or sample_grader.cpp for the input specification // int n; int asked[4001][4001]; bool cmp ( int a, int b) { if (asked[a][b]) return asked[a][b] == 1; vector<int> x; for (int i = 1 ; i <= n ; i++) { if (i != a and i != b) x.push_back(i); } auto y = x; x.push_back(a); x.push_back(b); y.push_back(b); y.push_back(a); asked[a][b] = publish(x) < publish(y) ? 1 : -1; asked[b][a] = - asked[a][b]; return asked[a][b] == 1; } void solve(int N) { for (int i = 1 ; i <= N ; i++) { for (int j = 1 ; j <= N ; j++) { asked[i][j] = 0; } } vector<int> order(N); n = N; for (int i = 0 ; i < N ; i++) order[i] = i + 1; if (N < 445) { stable_sort(order.begin(), order.end(), cmp); answer(order); return; } assert(0); random_shuffle(order.begin(), order.end()); vector<pair<int,int>> v; for (int i = 1 ; i <= N ; i++) { auto tmp = order; tmp.erase(find(tmp.begin(), tmp.end(), i)); tmp.push_back(i); v.emplace_back(publish(tmp), i); } sort(v.begin(), v.end()); reverse(v.begin(), v.end()); vector<int> ans; for (auto [i, j] : v) ans.push_back(j); 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...