#include "advisor.h"
#include <map>
#include <vector>
#include <stack>
#include <algorithm>
#include <stdio.h>
using namespace std;
int where[1000005];
int Next[1000005];
vector < int > when[100005];
map < int , int > how;
void ComputeAdvice(int *C, int N, int K, int M)
{
//printf("bb\n");
int t=0,now=1,xx,i,j;
while(now<K)
{
now*=2;
t++;
}
//while(1);
//printf("aa\n");
for(i=0;i<N;i++) when[C[i]].push_back(i);
for(i=0;i<N;i++) when[i].push_back(i+N);
for(i=0;i<N;i++) Next[i]=*upper_bound(when[C[i]].begin(),when[C[i]].end(),i);
for(i=0;i<K;i++)
{
where[i]=i;
how[when[i][0]]=i;
}
for(i=K;i<N;i++) where[i]=-1;
for(i=0;i<N;i++)
{
if(how.find(i)!=how.end()) how.erase(i);
if(where[C[i]]==-1)
{
xx=where[prev(how.end())->second];
for(j=0;j<t;j++)
{
if(xx&(1<<j)) WriteAdvice(1);
else WriteAdvice(0);
}
}
how[Next[i]]=C[i];
}
}
#include "assistant.h"
int where2[1000005];
int what[1000005];
void Assist(unsigned char *A, int N, int K, int R) {
int t=0,now=1,xx=0,how,tt=0,i,j;
while(now<K)
{
now*=2;
t++;
}
for(i=0;i<K;i++)
{
where2[i]=i;
what[i]=i;
}
for(i=K;i<N;i++) where2[i]=-1;
for(i=0;i<N;i++)
{
how=GetRequest();
if(where2[how]==-1)
{
xx=0;
for(j=0;j<t;j++) xx+=A[j+tt]*(1<<j);
tt+=t;
PutBack(what[xx]);
where2[how]=xx;
where2[what[xx]]=-1;
what[xx]=how;
}
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
3440 KB |
Output is correct |
2 |
Incorrect |
2 ms |
3176 KB |
Output isn't correct - not an optimal way |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
27 ms |
4420 KB |
Output isn't correct - not an optimal way |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
273 ms |
17036 KB |
Output isn't correct - not an optimal way |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
3 ms |
3476 KB |
Error - advice is too long |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
360 ms |
20096 KB |
Output isn't correct - not an optimal way |
2 |
Incorrect |
344 ms |
20132 KB |
Error - Putting back a color that is not on the scaffold |
3 |
Incorrect |
333 ms |
19596 KB |
Error - Putting back a color that is not on the scaffold |
4 |
Incorrect |
338 ms |
20096 KB |
Output isn't correct - not an optimal way |
5 |
Incorrect |
346 ms |
19876 KB |
Output isn't correct - not an optimal way |
6 |
Incorrect |
333 ms |
19600 KB |
Output isn't correct - not an optimal way |
7 |
Incorrect |
340 ms |
19776 KB |
Error - Putting back a color that is not on the scaffold |
8 |
Incorrect |
335 ms |
19824 KB |
Output isn't correct - not an optimal way |
9 |
Incorrect |
344 ms |
19980 KB |
Output isn't correct - not an optimal way |
10 |
Incorrect |
335 ms |
21108 KB |
Error - Putting back a color that is not on the scaffold |