Submission #1278720

#TimeUsernameProblemLanguageResultExecution timeMemory
1278720IBoryBosses (BOI16_bosses)C++20
100 / 100
363 ms848 KiB
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

const int MAX = 5005;
vector<int> G[MAX];
int N, S[MAX];

ll BFS(int s) {
	S[s] = 1;
	queue<int> Q;
	Q.push(s);
	while (!Q.empty()) {
		int cur = Q.front(); Q.pop();
		for (int& next : G[cur]) {
			if (S[next] <= S[cur] + 1) continue;
			S[next] = S[cur] + 1;
			Q.push(next);
		}
	}
	ll ret = 0;
	for (int i = 1; i <= N; ++i) ret += S[i];
	return ret;
}

int main() {
	ll ans = 1e18;
	cin >> N;
	for (int i = 1; i <= N; ++i) {
		int n;
		cin >> n;
		for (int j = 0; j < n; ++j) {
			int p;
			cin >> p;
			G[p].push_back(i);
		}
	}
	for (int i = 1; i <= N; ++i) {
		memset(S, 0x3f, sizeof(S));
		ans = min(ans, BFS(i));
	}
	cout << ans;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...