Submission #208171

#TimeUsernameProblemLanguageResultExecution timeMemory
208171pavementBosses (BOI16_bosses)C++17
100 / 100
1422 ms1120 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

int N, A = 1e9, T;
bitset<5005> V;
vector<int> adj[5005], nadj[5005];
queue<int> Q;

int dfs(int n, int e) {
	int d = 1;
	for (auto u : nadj[n])
		if (u ^ e) d += dfs(u, n);
	T += d;
	return d;
}

main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> N;
	for (int i = 1, K, X; i <= N; i++) {
		cin >> K;
		while (K--) {
			cin >> X;
			adj[X].push_back(i);
		}
	}
	for (int i = 1; i <= N; i++) {
		V.reset();
		T = 0;
		for (int j = 1; j <= N; j++) nadj[j].clear();
		Q.push(i);
		V[i] = 1;
		while (!Q.empty()) {
			int a = Q.front();
			Q.pop();
			for (auto u : adj[a])
				if (!V[u]) {
					V[u] = 1;
					nadj[a].push_back(u);
					Q.push(u);
				}
		}
		if ((int)V.count() ^ N) continue;
		dfs(i, -1);
		A = min(A, T);
	}
	cout << A << '\n';
}

Compilation message (stderr)

bosses.cpp:18:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...