Submission #1157205

#TimeUsernameProblemLanguageResultExecution timeMemory
1157205the_ZHERArt Collections (BOI22_art)C++20
20 / 100
54 ms408 KiB
#include <bits/stdc++.h>
#include "art.h"
using namespace std;
void solve(int N){
    vector<int>ans;
    int pos[5000];
    for(int i=1;i<=N;i++){
        ans.push_back(i);
        pos[i]=i-1;
    }
    int was[5000];
    for(int i=1;i<=N;i++){
        for(int j=1;j<=N;j++){
            if(was[j]==1){
                continue;
            }
            pos[ans[i-1]]=pos[j];
            swap(ans[pos[j]],ans[i-1]);
            pos[j]=i-1;
            int x=publish(ans);
            vector<int>v1;
            for(int l=0;l<i-1;l++){
                v1.push_back(ans[l]);
            }
            for(int l=i;l<ans.size();l++){
                v1.push_back(ans[l]);
            }  
            v1.push_back(j);
            int y=publish(v1);      
            if(y-x==N-i){
                was[j]=1;
                ans.clear();
                int t=0;
                for(int l=0;l<i-1;l++){
                    ans.push_back(v1[l]);
                    pos[v1[l]]=l;
                    t++;
                }
                ans.push_back(v1[v1.size()-1]);
                pos[v1[v1.size()-1]]=i-1;
                t++;
                for(int l=i-1;l<v1.size()-1;l++){
                    ans.push_back(v1[l]);
                    pos[v1[l]]=t;
                    t++;
                }
                v1.clear();
            break;
            }
            v1.clear();
        }
    }
    answer(ans);
}
#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...