#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))
{
//cout<<1;
WriteAdvice(1);
}
else
{
//cout<<0;
WriteAdvice(0);
}
}
}
void ComputeAdvice(int *c, int n, int k, int m)
{
int h=0;
for(int i=1; i<=n; i++)
{
//cout<<c[h]<<" ";
a[i]=c[h++];
int x=1,y=0;
while(x*2<=a[i])x*=2,y++;
b=max(y,b);
}
b++;
for(int i=1; i<=n; i++)
bin(a[i]);
///cout<<endl;
}
#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)
{
int h=0;
B=r/n;
for(int i=1;i<=n;i++)
{
string s="";
for(int id=(i-1)*B;id<i*B;id++)
{
//cout<<a[h];
if(a[h++])s+='1';
else s+='0';
}
//cout<<endl;
//cout<<s<<endl;
c[i]=dec(s);
p[c[i]].push_back(i);
}
/*for(int i=0;i<n;i++)
{
p[i].push_back(n+1);
cout<<i<<": ";
for(int j=0;j<p[i].size();j++)
cout<<p[i][j]<<" ";
cout<<endl;
}*/
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;
}
/*for(int j=0;j<n;j++)
cout<<id[j]<<" ";
cout<<endl;
for(auto it=s.begin();it!=s.end();it++)
cout<<*it<<" ";
cout<<endl;*/
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... |