제출 #1188885

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

vector<int>a;

void mv(vector<int>&a,int i,int j){
    rotate(a.begin()+min(i,j),a.begin()+i+(i<j),a.begin()+max(i,j)+1);
}

void ms(int l=0,int r=a.size()-1){
    if(l==r){
        return;
    }
    if(r-l==1){
        int c1=publish(a);
        swap(a[l],a[r]);
        int c2=publish(a);
        if(c1<c2){
            swap(a[l],a[r]);
        }
        return;
    }
    int mid=(l+r)/2;
    ms(l,mid);
    ms(mid+1,r);
    int c=publish(a);
    for(int i=mid+1;i<=r;i++){
        for(int j=i;j>l;j--){
            swap(a[j],a[j-1]);
            int _c=publish(a);
            if(_c>c){
                swap(a[j],a[j-1]);
                l=j;
                break;
            }
            c=_c;
        }
    }
}

void solve(int N) {
    a=vector<int>(N);
    iota(a.begin(),a.end(),1);
    ms(0,N-1);
    answer(a);
}
#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...