Submission #1255025

#TimeUsernameProblemLanguageResultExecution timeMemory
1255025NurislamCarnival (CEOI14_carnival)C++20
100 / 100
3 ms408 KiB
#include <bits/stdc++.h>
using namespace std;
//const int mod = 998244353;
#define int long long
const long long inf = 5e18;


void solve() {
	int n;
	cin >> n;
	vector<int> ans(n+1, 0), v;
	
	for(int i = 1; i <= n; i ++ ) v.push_back(i);
	
	int c = -1;
	for(int i = n; i >= 1; i -- ) {
		cout << v.size() << ' ';
		for(int i : v)cout << i << ' ';
		cout << endl;
		
		int x;
		cin >> x;
		if(c == -1) c = x;
		
		if(c != x) ans[i+1] = c--;
		v.pop_back();
	};
	ans[1] = 1;
	v.push_back(0);
	for(int i = 1; i <= n; i ++ )
		if(ans[i])v.push_back(i);
		
	
	function<int(int ,int, int) > dc = [&](int l,int r,int x) {
		if(l == r) return ans[v[l]];
		
		int m = (l+r) >> 1;
		
		int lf = m-l+1;
		vector<int> ask(1,x);
		for(int i = l; i <= m; i ++ ) ask.push_back(v[i]);
		
		cout << ask.size() << ' ';
		for(int &i : ask)cout << i << ' ';
		cout << endl;
		int an;cin >> an;
		if(an != lf) return dc(m+1, r, x);
		return dc(l, m, x);
	};
	
	
	for(int i = 1; i <= n; i ++ ) {
		if(ans[i])continue;
		ans[i] = dc(1, v.size(), i);
	};
	
	
	for(int i : ans)cout << i << ' ';
	cout << endl;
};

signed main() {
	//ios_base::sync_with_stdio(false);
	//cin.tie(nullptr); cout.tie(nullptr);


	int tt = 1;
	//cin >> tt;

	while(tt--) {
		solve();
	};
};
#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...