#include "art.h"
#include<bits/stdc++.h>
using namespace std;
void solve(int n){
if(n <= 6){
vector<int>p(n);
iota(p.begin(), p.end(), 1);
do{
if(publish(p) == 0){
answer(p);
return;
}
} while(next_permutation(p.begin(), p.end()));
}
if(n <= 444){
vector<int>p(n), ans(1, 1);
iota(p.begin(), p.end(), 1);
for(int i = 2, init = publish(p); i <= n; i++){
int low = 0, high = i - 2, pos = 0;
while(low <= high){
int mid = (low + high) >> 1;
swap(p[i - 1], p[ans[mid] - 1]);
if(publish(p) > init){
low = pos = mid + 1;
}
else{
high = mid - 1;
}
swap(p[i - 1], p[ans[mid] - 1]);
}
ans.insert(ans.begin() + pos, i);
}
answer(ans);
return;
}
vector<int>ans(n, -1), p(n);
iota(p.begin(), p.end(), 1);
for(int i = 1, init = publish(p); i < n; i++){
p.insert(p.begin(), p.back());
p.pop_back();
int d = publish(p) - init;
ans[(d + init) >> 1] = p[0];
init += d;
}
ans[find(ans.begin(), ans.end(), -1) - ans.begin()] = 1;
answer(ans);
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |