Submission #1310112

#TimeUsernameProblemLanguageResultExecution timeMemory
1310112FaresSTHCarnival (CEOI14_carnival)C++20
0 / 100
8 ms424 KiB
#include"bits/stdc++.h"
// #include"m.cpp"
using namespace std;
using ll=long long;
#define S second
#define F first
int qry(vector<int>x){
	cout<<x.size();
	for(int i:x)cout<<' '<<i;
	cout<<endl;
	int r;
	cin>>r;
	return r;
}
vector<int>rng(int i,int l,int r){
	vector<int>x;
	if(i!=-1)x.push_back(i);
	for(int i=l;i<=r;i++)x.push_back(i);
	return x;
}
vector<int>a;
set<int>s;
void rec(int i,int l,int r){
	// cout<<"enter "<<i<<' '<<l<<' '<<r<<endl;
	int q=qry(rng(i,l,r));
	if(qry(rng(-1,l,r))+1==q)return;
	if(q==1){
		for(int j=l;j<=r;j++)a[j]=a[i];
		return;
	}
	int m=(l+r)/2;
	rec(i,l,m);
	rec(i,m+1,r);
}
int main(){
	cin.tie(0)->sync_with_stdio(0);
	// remember(4095);
	// cout<<compare(2214);
	// int mxa=0,mxb=0;
	// for(int i=0;i<4096;i++){
	// 	remember(i);
	// 	// cout<<i<<' '<<compare(0)<<endl;
	// 	mxa=max(mxa,cn);
	// 	for(int j=0;j<4096;j++){
	// 		int g=compare(j);
	// 		mxb=max(mxb,k);
	// 		if(mxb==14)cout<<j<<' '<<i<<endl;
	// 	}
	// }
	// cout<<mxb;
	// remember(31);
	// cout<<compare(63)<<endl;
	// cout<<compare(31)<<endl;
	// cout<<compare(30)<<endl;
	// cout<<compare(32)<<endl;
	int n;
	cin>>n;
	a.resize(n+1,-1);
	for(int i=1;i<=n;i++)s.insert(i);
	for(int i=1;i<=n;i++){
		if(a[i]!=-1)continue;
		a[i]=*s.begin();
		s.erase(s.begin());
		rec(i,i+1,n);
	}
	cout<<0;
	for(int i=1;i<=n;i++)cout<<' '<<a[i];
	cout<<flush;
}
#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...