제출 #100931

#제출 시각아이디문제언어결과실행 시간메모리
100931square1001사육제 (CEOI14_carnival)C++14
100 / 100
39 ms384 KiB
#include <vector>
#include <iostream>
using namespace std;
int ask(int L, int R) {
	cout << R - L;
	for (int i = L; i < R; ++i) {
		cout << ' ' << i + 1;
	}
	cout << endl;
	int x;
	cin >> x;
	return x;
}
int main() {
	int N;
	cin >> N;
	vector<int> C(N);
	int cnt = 0;
	for (int i = N - 1; i >= 0; --i) {
		int L = i + 1, R = N + 1;
		while (R - L > 1) {
			int M = (L + R) >> 1;
			int r1 = ask(i, M);
			int r2 = ask(i + 1, M);
			if (r1 != r2) L = M;
			else R = M;
		}
		if (R != N + 1) C[i] = C[R - 1];
		else C[i] = ++cnt;
	}
	cout << 0;
	for (int i = 0; i < N; ++i) {
		cout << ' ' << C[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...