Submission #100929

#TimeUsernameProblemLanguageResultExecution timeMemory
100929E869120Carnival (CEOI14_carnival)C++14
20 / 100
99 ms2988 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<int>X[100009]; int n, col[1009], cnts;

void dfs(int pos) {
	if (col[pos] >= 1) return;
	col[pos] = cnts;
	for (int i = 0; i < X[pos].size(); i++) dfs(X[pos][i]);
}

int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = i + 1; j <= n; j++) {
			cout << "2 " << i << " " << j << endl;
			int p; cin >> p;
			if (p == 1) { X[i].push_back(j); X[j].push_back(i); }
		}
	}
	for (int i = 1; i <= n; i++) {
		if (col[i] >= 1) continue;
		cnts++; dfs(i);
	}
	cout << "0";
	for (int i = 1; i <= n; i++) cout << " " << col[i]; cout << endl;
	return 0;
}

Compilation message (stderr)

carnival.cpp: In function 'void dfs(int)':
carnival.cpp:10:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < X[pos].size(); i++) dfs(X[pos][i]);
                  ~~^~~~~~~~~~~~~~~
carnival.cpp: In function 'int main()':
carnival.cpp:27:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  for (int i = 1; i <= n; i++) cout << " " << col[i]; cout << endl;
  ^~~
carnival.cpp:27:54: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  for (int i = 1; i <= n; i++) cout << " " << col[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...