Submission #595427

#TimeUsernameProblemLanguageResultExecution timeMemory
595427DeepessonArt Collections (BOI22_art)C++17
100 / 100
1804 ms712 KiB
#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)

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
#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...