# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
595790 | andrei_boaca | Carnival (CEOI14_carnival) | C++14 | 10 ms | 304 KiB |
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 <bits/stdc++.h>
using namespace std;
int n,c[155];
bool f[155];
int ask(int l,int r)
{
cout<<r-l+1<<' ';
for(int i=l;i<=r;i++)
cout<<i<<' ';
cout<<endl;
int rez;
cin>>rez;
return rez;
}
int main()
{
cin>>n;
int nr=0;
for(int i=1;i<=n;i++)
{
int ans=ask(1,i);
if(ans>nr)
{
nr++;
c[i]=nr;
continue;
}
vector<int> poz;
for(int j=1;j<=n;j++)
f[j]=0;
for(int j=i-1;j>=1;j--)
if(f[c[j]]==0)
{
poz.push_back(j);
f[c[j]]=1;
}
bool ok=0;
if(i==10)
ok=1;
int st=0;
int dr=poz.size();
dr--;
int pmax=0;
while(st<=dr)
{
int mij=(st+dr)/2;
ans=ask(poz[mij],i);
if(ans==mij+2)
{
pmax=mij+1;
st=mij+1;
}
else
dr=mij-1;
}
c[i]=c[poz[pmax]];
}
cout<<"0 ";
for(int i=1;i<=n;i++)
cout<<c[i]<<' ';
cout<<endl;
return 0;
}
Compilation message (stderr)
# | 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... |