Submission #853361

#TimeUsernameProblemLanguageResultExecution timeMemory
853361vjudge1Art Collections (BOI22_art)C++17
70 / 100
1134 ms1736 KiB
#include "art.h" #include <bits/stdc++.h> using namespace std; vector<int> rel = {2, 3, 1, 4, 5}; // 2 3 1 4 5 void solve(int N) { vector<int> order(N); for(int i = 0; i < N; i++) order[i] = i + 1; vector<int> dif(N, 0); int mx = 0; for(int i = 1; i < N; i++){ swap(order[i-1], order[0]); // swap(rel[i-1], rel[0]); int original = publish(order); swap(order[0], order[N - 1]); int nw = publish(order); swap(order[0], order[N - 1]); // cout << "I " << i << " nw "<< nw << " original " << original << " dif "<< dif[i-1] << " dif halved " << dif[i-1] / 2 << endl; if(original > nw){ //N-1 is smaller than 0. original++; }else{ //0 is smaller than N-1. nw++; } // swap(rel[0], rel[N-1]); // for(int x : rel) cout << x << " "; // cout << endl; // swap(rel[0], rel[N-1]); dif[i-1] = original - nw; // cout << "I " << i << " nw "<< nw << " original " << original << " dif "<< dif[i-1] << " dif halved " << dif[i-1] / 2 << endl; dif[i-1] /= 2; mx = max(mx, dif[i-1]); } vector<int> ans(N); ans[N-1] = N - mx; vector<int> real_ans(N); for(int i = 0; i < N; i++){ ans[i] = ans[N-1] + dif[i]; real_ans[ans[i]-1] = i + 1; } answer(real_ans); } /* 10 9 10 3 1 2 4 8 7 6 5 */

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