Submission #1086397

#TimeUsernameProblemLanguageResultExecution timeMemory
1086397vjudge1Art Collections (BOI22_art)C++17
100 / 100
1138 ms1708 KiB
#include"art.h"
#include<algorithm>
using namespace std;

void solve(int n) {
    vector<int> order(n);
    for (int i = 0; i < n; ++i) order[i] = i+1;
    int curr = publish(order);
    for (int sz = 1; sz < n; ++sz) {
        int j = n-1-sz;
        rotate(order.begin()+j, order.begin()+j+1, order.end());
        int qq = publish(order);
        int delta = curr - qq;
        int x1 = (sz+delta)/2;
        int x2 = sz - x1;
        //assert(x1+x2 == sz);
        //assert(x1-x2 == delta);
        int correct_pos = n - x2 - 1;
        rotate(order.begin()+correct_pos, order.begin()+n-1, order.end());

        curr -= x1;
    }
    answer(order);
}

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