#include <bits/stdc++.h>
#include "advisor.h"
using namespace std;
int a[100001],b;
void bin(int x)
{
for(int i=0; i<b; i++)
if(x&(1<<i))WriteAdvice(1);
else WriteAdvice(0);
}
void ComputeAdvice(int *c, int n, int k, int m)
{
for(int i=1; i<=n; i++)
{
a[i]=*c;
int x=1,y=0;
while(x*2<=a[i])x*=2,y++;
b=max(y,b);
c++;
}
for(int i=1;i<=n;i++)
bin(a[i]);
}
#include <bits/stdc++.h>
#include "assistant.h"
using namespace std;
int c[100001],b;
int dec(string s)
{
int x=0;
for(int i=0;i<b;i++)
if(s[i]=='1')x+=(1<<i);
return x;
}
int id[100001],in[100001];
vector<int> p[100001];
struct cmp
{
bool operator()(const int&x,const int&y)const
{
return p[x][id[x]]>p[y][id[y]];
}
};
void Assist(unsigned char *a, int n, int k, int r)
{
b=r/n;
for(int i=1;i<=n;i++)
{
string s="";
for(int id=(i-1)*b;id<i*b;id++)
{
s+=*a;
a++;
}
c[i]=dec(s);
p[c[i]].push_back(i);
}
for(int i=0;i<n;i++)
p[i].push_back(n+1);
vector<int> curr;
set<int,cmp> s;
for(int i=0;i<k;i++)
{
in[i]=1;
s.insert(i);
}
for(int i=0;i<n;i++)
{
int x=GetRequest();
if(in[x])
{
s.erase(x);
id[x]++;
s.insert(x);
continue;
}
int y=*s.begin();
in[y]=0;
in[x]=1;
PutBack(y);
s.erase(y);
id[x]++;
s.insert(x);
}
}
# | 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... |