Submission #197432

#TimeUsernameProblemLanguageResultExecution timeMemory
197432JuneyCarnival (CEOI14_carnival)C++14
100 / 100
24 ms424 KiB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 1e5 + 5;

int N, col[155];
vector<int> V;

void out(vector<int> &v) {
	cout << v.size() << ' ';
	for(auto i : v) cout << i << ' ';
	cout << endl;
}

int search(int x) {
	int l = 0, r = V.size() - 1, ret;
	while(l <= r) {
		if(l == r) {
			ret = l;
			break;
		}
		int mid = l + r >> 1;
		vector<int> t; t.push_back(x);
		for(int i=l; i<=mid; i++) t.push_back(V[i]);
		out(t);
		int a; cin >> a;
		if(a == mid - l + 1) r = mid;
		else l = mid + 1;
	}
	return ret + 1;
}

int main() {
	//ios::sync_with_stdio(0); cin.tie(0);
	cin >> N;
	V.push_back(1); col[1] = 1;
	for(int i=2; i<=N; i++) {
		V.push_back(i);
		out(V);
		int x; cin >> x;
		if(x < V.size()) {
			V.pop_back();
			int c = search(i);
			col[i] = c;
		}
		else col[i] = V.size();
	}
	cout << 0 << ' ';
	for(int i=1; i<=N; i++) cout << col[i] << ' ';
	cout << endl;
}

Compilation message (stderr)

carnival.cpp: In function 'int search(int)':
carnival.cpp:29:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = l + r >> 1;
             ~~^~~
carnival.cpp: In function 'int main()':
carnival.cpp:48:8: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(x < V.size()) {
      ~~^~~~~~~~~~
carnival.cpp: In function 'int search(int)':
carnival.cpp:23:31: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
  int l = 0, r = V.size() - 1, ret;
                               ^~~
#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...