# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
595427 | Deepesson | Art Collections (BOI22_art) | C++17 | 1804 ms | 712 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
/**
* returns how many complaints you will receive for this ordering of the art collections
*/
int publish(std::vector<int>);
/**
* use this function when you have found the correct order of the art collections
* You must call answer exactly once; your program will be automatically
* terminated afterwards.
*/
void answer(std::vector<int>);
/**
* implement this function
*/
void solve(int N);
int _N;
int publish(std::deque<int> x){
std::vector<int> u;
for(auto&z:x)u.push_back(z);
return publish(u);
}
std::vector<int> before;
int padrao=0;
int descobrir_posicao(int x){
std::deque<int> vec;
for(int i=0;i!=_N;++i){
if(i+1==x)continue;
vec.push_back(i+1);
}
std::deque<int> back,front;
front=vec;
front.push_back(x);
int alpha = padrao,beta=publish(front);
int custo_base = (alpha+beta-(_N-x))/2;
///Quantos caras na frente tem?
int posicao = alpha-custo_base;
return posicao;
}
void solve(int N) {
_N=N;
std::deque<int> vec;
for(int i=0;i!=_N;++i){
vec.push_back(i+1);
}
padrao=publish(vec);
int array[N]={};
for(int i=0;i!=N-1;++i){
int p = descobrir_posicao(i+1);
int c=0;
for(int j=0;j!=N;++j){
if(array[j])continue;
if(c==p){
array[j]=i+1;
break;
}
++c;
}
}
for(auto&x:array)if(!x)x=N;
std::vector<int> res;
for(int i=0;i!=N;++i)res.push_back(array[i]);
answer(res);
}
Compilation message (stderr)
# | 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... |