Submission #439184

#TimeUsernameProblemLanguageResultExecution timeMemory
439184JasiekstrzCarnival (CEOI14_carnival)C++17
100 / 100
44 ms280 KiB
#include<bits/stdc++.h>
using namespace std;
const int N=150;
int tab[]={0,2,1,2,3,1};
int xd=0;
int ans[N+10];
int ask_test(int l,int r)
{
	set<int> st;
	for(int i=l;i<=r;i++)
		st.insert(tab[i]);
	return st.size();
}
int ask(int l,int r)
{
	//return ask_test(l,r);
	cout<<r-l+1<<" ";
	for(int i=l;i<=r;i++)
		cout<<i<<" ";
	cout<<endl;
	int x;
	cin>>x;
	return x;
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int bg=0,en=i-1;
		while(bg<en)
		{
			int mid=(bg+en+1)/2;
			if(ask(mid,i)==ask(mid,i-1))
				bg=mid;
			else
				en=mid-1;
		}
		if(bg==0)
			ans[i]=++xd;
		else
			ans[i]=ans[bg];
	}
	cout<<"0 ";
	for(int i=1;i<=n;i++)
		cout<<ans[i]<<" ";
	cout<<endl;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...