Submission #166679

#TimeUsernameProblemLanguageResultExecution timeMemory
166679alanhpereiraCarnival (CEOI14_carnival)C++11
100 / 100
19 ms448 KiB
#include <bits/stdc++.h>
#define MAX 160
using namespace std;

vector<int> lists[MAX];
int nlidx = 0;

int group[MAX];

int query(int l, int r, int e) {
	printf("%d ", r - l + 2);
	for (int i = l; i <= r; i++) {
		printf("%d ", lists[i][0]);
	}
	printf("%d\n", e);
	fflush(stdout);
	int ans;
	scanf("%d", &ans);
	return ans;
}

int main() {
	int n;
	scanf("%d", &n);
	group[1] = 1;
	lists[nlidx++].push_back(1);
	for (int i = 2; i <= n; i++) {
		int l = 0, r = nlidx - 1;
		int ans = query(l, r, i);
		if (ans == nlidx + 1) {
			lists[nlidx++].push_back(i);
			group[i] = nlidx;
			continue;
		}
		while (l != r) {
			int mid = (l + r) / 2;
			ans = query(l, mid, i);
			if (ans == mid - l + 2) {
				l = mid + 1;
			}
			else {
				r = mid;
			}
		}
		lists[l].push_back(i);
		group[i] = l + 1;
	}
	printf("0 ");
	for (int i = 1; i <= n; i++) {
		printf("%d ", group[i]);
	}
	printf("\n");
	return 0;
}

Compilation message (stderr)

carnival.cpp: In function 'int query(int, int, int)':
carnival.cpp:18:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &ans);
  ~~~~~^~~~~~~~~~~~
carnival.cpp: In function 'int main()':
carnival.cpp:24:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
#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...