This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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)
{
int t=0,now=1,xx,i,j;
while(now<K)
{
now*=2;
t++;
}
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);
}
where[C[i]]=xx;
where[prev(how.end())->second]=-1;
how.erase(prev(how.end()));
} else {
for(j = 0; j < t; j++)
if(K&(1<<j)) WriteAdvice(1);
else WriteAdvice(0);
}
how[Next[i]]=C[i];
}
}
#include "assistant.h"
#include<bits/stdc++.h>
using namespace std;
void Assist(unsigned char *A, int N, int K, int R) {
priority_queue<pair<int, int>> q;
int last[N], nxt[N];
memset(last, 1, sizeof last);
int C[N], bits = log2(K)+1;
memset(C, 0, sizeof C);
for(int i = 0; i < N; i++)
for(int j = 0; j < bits; j++)
C[i]|=(int)A[i*bits+j] << j;
int scaffold[K];
iota(scaffold, scaffold+K, 0);
for(int i = 0; i < N; i++) {
int x = GetRequest();
if(C[i]<K)
PutBack(scaffold[C[i]]), scaffold[C[i]] = x;
}
}
Compilation message (stderr)
assistant.cpp: In function 'void Assist(unsigned char*, int, int, int)':
assistant.cpp:8:16: warning: unused variable 'nxt' [-Wunused-variable]
8 | int last[N], nxt[N];
| ^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |