Submission #58676

#TimeUsernameProblemLanguageResultExecution timeMemory
58676TadijaSebezLibrary (JOI18_library)C++11
0 / 100
2 ms248 KiB
#include "library.h" #include <stdio.h> #include <vector> #include <algorithm> #include <queue> using namespace std; #define pb push_back const int N=1050; //-----------------------// /* bool _use[N]; int _N,_Q; int _p[N]; vector<int> _P; int Query(vector<int> a) { _Q++; int i; for(i=1;i<=_N;i++) _use[i]=0; for(i=0;i<a.size();i++) _use[_p[a[i]]]=1; int sol=0; for(i=1;i<=_N;i++) { if(_use[i] && !_use[i-1]) sol++; } return sol; } void Answer(vector<int> a) { printf("Number of queries: %i\n",_Q); if(a==_P){ printf("OK\n");return;} reverse(_P.begin(),_P.end()); if(a==_P) printf("OK\n"); else printf("WA\n"); } */ //-----------------------// bool done[N]; deque<int> ans; void Fill(vector<int> &a, int n) { a.clear(); for(int i=1;i<=n;i++) if(!done[i]) a.pb(i); } bool Ask(vector<int> a, int i) { int sol1=Query(a); a.pb(i); int sol2=Query(a); return sol1>=sol2; } void Solve(int n) { ans.push_back(1); done[1]=1; vector<int> my,tmp[2]; int i; while(ans.size()<n) { int x=ans.back(); //printf("1: %i\n",x); Fill(my,n); if(!Ask(my,x)) break; while(my.size()>1) { tmp[0].clear();tmp[1].clear(); for(i=0;i<my.size();i++) tmp[i&1].pb(my[i]); if(Ask(tmp[0],x)) my=tmp[0]; else my=tmp[1]; } ans.push_back(my[0]); done[my[0]]=1; } while(ans.size()<n) { int x=ans.front(); //printf("2: %i\n",x); Fill(my,n); while(my.size()>1) { tmp[0].clear();tmp[1].clear(); for(i=0;i<my.size();i++) tmp[i&1].pb(my[i]); if(Ask(tmp[0],x)) my=tmp[0]; else my=tmp[1]; } ans.push_front(my[0]); done[my[0]]=1; } vector<int> ret; while(ans.size()) ret.pb(ans.front()),ans.pop_front(); Answer(ret); } //-----------------------// /* int main() { scanf("%i",&_N); int i,x; for(i=0;i<_N;i++) scanf("%i",&x),_P.pb(x),_p[x]=i+1; Solve(_N); return 0; } */ //-----------------------//

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:58:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(ans.size()<n)
        ~~~~~~~~~~^~
library.cpp:67:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(i=0;i<my.size();i++) tmp[i&1].pb(my[i]);
            ~^~~~~~~~~~
library.cpp:74:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(ans.size()<n)
        ~~~~~~~~~~^~
library.cpp:82:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(i=0;i<my.size();i++) tmp[i&1].pb(my[i]);
            ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...