#include <iostream>
#include <algorithm>
#include "advisor.h"
using namespace std;
long long int maxlen,ans[1000005],k,map[1000005],in[1000005],t[1000005],p[1000005];
struct node{
long long int road,id;
}now[1000005];
struct cmp{
bool operator()(const node &a,const node &b)
{
return a.road<b.road;
}
};
void find(int x)
{
for(int i=1;i<=maxlen;i++)
{
if(x%2==0)WriteAdvice('0');
else WriteAdvice('1');
//cout<<x%2<<" ";
x/=2;
}
return ;
}
void ComputeAdvice(int *C, int N, int K, int M) {
k=K;
long long int x=1;
while(x<k)
{
x*=2;
maxlen++;
}
for(int i=0;i<N;i++)now[i].road=99999999999999999;
for(int i=0;i<N;i++)
{
map[i]=now[C[i]].road;
now[C[i]].road=i;
}
for(int i=0;i<N;i++)p[i]=-1;
for(int i=0;i<K;i++)
{
t[i]=i;
now[i].id=i;
p[i]=i;
push_heap(now,now+i+1,cmp());
}
//for(int i=0;i<K;i++)cout<<now[i].id<<" ";
//cout<<endl;
for(int i=0;i<N;i++)
{
if(p[C[i]]!=-1)continue;
else
{
pop_heap(now,now+K,cmp());
p[C[i]]=p[now[K-1].id];
find(p[C[i]]);
p[now[K-1].id]=-1;
now[C[i]].road=map[now[C[i]].road];
now[K-1].id=C[i];
push_heap(now,now+K,cmp());
}
}
}
#include "assistant.h"
#include <iostream>
using namespace std;
long long int a[1000005],pp,malen;
int find()
{
long long int tmp=0,x=1;
for(int i=pp+1;i<=pp+malen;i++)
{
if(a[i]=='1')tmp+=x;
x*=2;
}
return tmp;
}
void Assist(unsigned char *A, int N, int K, int R) {
long long int now[100005],k,p[100005];
//for(int i=0;i<R;i++)cout<<A[i]<<endl;
k=K;
long long int x=1;
while(x<k)
{
x*=2;
malen++;
}
for(int i=0;i<N;i++)p[i]=-1;
for(int i=0;i<k;i++)
{
now[i]=i;
p[i]=i;
}
for(int i=0;i<N;i++)
{
long long int tmp=GetRequest();
if(p[tmp]!=-1)
{
continue;
}
long long int temp=find();
PutBack(now[temp]);
p[now[temp]]=-1;
now[temp]=tmp;
p[tmp]=temp;
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
1004 KB |
Error - advice must be 0 or 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
1536 KB |
Error - advice must be 0 or 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
12 ms |
6656 KB |
Error - advice must be 0 or 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
1024 KB |
Error - advice must be 0 or 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
16 ms |
7976 KB |
Error - advice must be 0 or 1 |
2 |
Incorrect |
19 ms |
8192 KB |
Error - advice must be 0 or 1 |
3 |
Incorrect |
15 ms |
8192 KB |
Error - advice must be 0 or 1 |
4 |
Incorrect |
16 ms |
8192 KB |
Error - advice must be 0 or 1 |
5 |
Incorrect |
17 ms |
8192 KB |
Error - advice must be 0 or 1 |
6 |
Incorrect |
16 ms |
8192 KB |
Error - advice must be 0 or 1 |
7 |
Incorrect |
20 ms |
8432 KB |
Error - advice must be 0 or 1 |
8 |
Incorrect |
16 ms |
8192 KB |
Error - advice must be 0 or 1 |
9 |
Incorrect |
15 ms |
8192 KB |
Error - advice must be 0 or 1 |
10 |
Incorrect |
16 ms |
8192 KB |
Error - advice must be 0 or 1 |