#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
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]);
~^~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
248 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
248 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |