Submission #402066

#TimeUsernameProblemLanguageResultExecution timeMemory
402066victoriadLibrary (JOI18_library)C++14
100 / 100
564 ms296 KiB
#include <cstdio> #include <vector> #include "library.h" using namespace std; void Solve(int N) { vector<int>res; if(N==1){ res.push_back(1); } else{ int primero; vector<int>l(N,1); for(int i=0;i<N;i++){ l[i]--; if(Query(l)==1){ primero=i; res.push_back(primero); l[i]++; break; } l[i]++; } vector<bool>c(N,false); c[primero]=true; while(res.size()<N){ vector<int>libres; for(int i=0;i<N;i++){ if(!c[i]){ libres.push_back(i); } } int low=0,hi=libres.size(); while(hi-low>1){ int mid=(hi+low)/2; l.assign(N,0); for(int i=0;i<mid;i++)l[libres[i]]++; int v=Query(l); l[res.back()]++; if(v==Query(l)){ hi=mid; } else{ low=mid; } } res.push_back(libres[low]); c[libres[low]]=true; } for(int i=0;i<N;i++)res[i]++; } Answer(res); }

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:32:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |   while(res.size()<N){
      |         ~~~~~~~~~~^~
library.cpp:31:12: warning: 'primero' may be used uninitialized in this function [-Wmaybe-uninitialized]
   31 |   c[primero]=true;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...