제출 #1201568

#제출 시각아이디문제언어결과실행 시간메모리
1201568UnforgettableplArt Collections (BOI22_art)C++20
100 / 100
761 ms496 KiB
#include "art.h"
#include <bits/stdc++.h>
using namespace std;

void solve(int N) {
    vector<int> curr(N);
    iota(curr.begin(),curr.end(),1);
    int base = publish(curr);
    vector<int> holdings(10000,-1);
    holdings[5000]=1;
    for(int i=N;i>1;i--){
        swap(curr[0],curr[i-1]);
        int mine = publish(curr)-base;
        swap(curr[0],curr[i-1]);
        int offset = (abs(mine)-1)/2 + 1;
        if(mine<0){
            for(int x=5000;x;x--){
                if(holdings[x]!=-1)continue;
                if((--offset)==0){
                    holdings[x]=i;
                    break;
                }
            }
        } else {
            for(int x=5000;x;x++){
                if(holdings[x]!=-1)continue;
                if((--offset)==0){
                    holdings[x]=i;
                    break;
                }
            }
        }
    }
    curr.clear();
    for(int i=0;i<10000;i++)if(holdings[i]!=-1)curr.emplace_back(holdings[i]);
    answer(curr);
}
#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...