Submission #1181406

#TimeUsernameProblemLanguageResultExecution timeMemory
1181406badge881사육제 (CEOI14_carnival)C++20
100 / 100
4 ms432 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n;
	cin >> n;
	int same[n + 1], uni[n + 1];
	memset(uni, 0, sizeof(uni));
	for (int i = 1; i <= n; i++){
		int lo = 0, hi = i - 1, mid;
		while (lo < hi){
			mid = (lo + hi + 1) / 2;
			cout << (i-mid+1) << ' ';
			for (int j = mid; j <= i; j++)
				cout << j << ' ';
			cout << endl;
			int x, dist=0;
			cin >> x;
			for (int j = mid; j < i; j++) 
			  dist += uni[j];
			if (x <= dist) 
			  lo = mid;
			else 
			  hi = mid - 1;
		}
		same[i] = lo;
		if (lo)
			uni[lo] = 0;
		uni[i] = 1;
	}
	int ans[n + 1], cur = 1;
	for (int i = 1; i <= n; i++)
		if (same[i] == 0)
			ans[i] = cur++;
		else 
		  ans[i] = ans[same[i]];
		  
	cout << 0 << ' ';
	for(int i = 1; i <= n; i++)
	  cout << ans[i] << ' ';
	cout << endl;
}
#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...