#include "advisor.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn=100000+10;
set<pair<int,int>>st;
set<int>wtf;
int n,k,m,lgk;
int allk[maxn],nxt[maxn],last[maxn];
void wri(int x){
for(int i=0;i<=lgk;i++){
WriteAdvice((x>>i)&1);
}
}
void ComputeAdvice(int *C, int N, int K, int M) {
for(int i=0;;i++){
if((1<<i)>=K){
lgk=i;
break;
}
}
n=N;
k=K;
m=M;
for(int i=0;i<maxn;i++){
last[i]=n+1;
}
for(int i=n-1;i>=0;i--){
nxt[i]=last[C[i]];
last[C[i]]=i;
}
for(int i=0;i<k;i++){
allk[i]=i;
wtf.insert(i);
st.insert(make_pair(last[allk[i]],i));
}
for(int i=0;i<N;i++){
if(wtf.count(C[i])==1){
continue;
}
int z=(*st.rbegin()).second;
wri(z);
st.erase((*st.rbegin()));
wtf.erase(allk[z]);
allk[z]=C[i];
wtf.insert(C[i]);
st.insert(make_pair(last[i],z));
}
}
#include "assistant.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn=100000+10;
int all[maxn],lgk2,n2,k2,r2;
set<int>st2;
void Assist(unsigned char *A, int N, int K, int R) {
for(int i=0;;i++){
if((1<<i)>=K){
lgk2=i;
break;
}
}
n2=N;
k2=K;
r2=R;
for(int i=0;i<k2;i++){
all[i]=i;
st2.insert(i);
}
// cout<<" wtf: "<<R<<endl;
//for(int i=0;i<R;i++){
// cout<<(int)A[i];
//}
//cout<<endl;
int unnow=0;
for(int i=0;i<n2;i++){
int req=GetRequest();
if(st2.count(req)==1){
continue;
}
int x=0;
for(int i=0;i<=lgk2;i++){
if(A[unnow]==1){
x+=(1<<i);
}
unnow++;
}
// cout<<i<<" "<<x<<" "<<all[x]<<endl;
PutBack(all[x]);
st2.erase(all[x]);
all[x]=req;
st2.insert(req);
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
1044 KB |
Output is correct |
2 |
Incorrect |
1 ms |
1044 KB |
Output isn't correct - not an optimal way |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
22 ms |
2348 KB |
Output isn't correct - not an optimal way |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
168 ms |
12444 KB |
Output isn't correct - not an optimal way |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
1316 KB |
Error - advice is too long |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
196 ms |
14744 KB |
Output isn't correct - not an optimal way |
2 |
Incorrect |
211 ms |
14920 KB |
Output isn't correct - not an optimal way |
3 |
Incorrect |
207 ms |
14944 KB |
Output isn't correct - not an optimal way |
4 |
Incorrect |
219 ms |
14784 KB |
Output isn't correct - not an optimal way |
5 |
Incorrect |
223 ms |
14928 KB |
Output isn't correct - not an optimal way |
6 |
Incorrect |
223 ms |
14800 KB |
Output isn't correct - not an optimal way |
7 |
Incorrect |
219 ms |
15000 KB |
Output isn't correct - not an optimal way |
8 |
Incorrect |
211 ms |
15096 KB |
Output isn't correct - not an optimal way |
9 |
Incorrect |
212 ms |
14796 KB |
Output isn't correct - not an optimal way |
10 |
Incorrect |
263 ms |
16736 KB |
Output isn't correct - not an optimal way |