Submission #1293746

#TimeUsernameProblemLanguageResultExecution timeMemory
1293746AbdullahIshfaqBosses (BOI16_bosses)C++20
100 / 100
364 ms752 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define MOD 998244353
const int N = 5005;
int ans[N], dis[N], sum;
vector<int> v[N];
void solve()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		int k;
		cin >> k;
		for (int j = 1; j <= k; j++)
		{
			int x;
			cin >> x;
			v[x].push_back(i);
		}
	}
	int d = 1e9;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			dis[j] = 0;
		}
		sum = 0;
		dis[i] = 1;
		queue<int> q;
		q.push(i);
		while (q.size())
		{
			int x = q.front();
			ans[i] += dis[x];
			sum++;
			q.pop();
			for (auto j : v[x])
			{
				if (dis[j] == 0)
				{
					dis[j] = dis[x] + 1;
					q.push(j);
				}
			}
		}
		if (sum < n)
		{
			ans[i] = 1e9;
		}
		d = min(ans[i], d);
	}
	cout << d << '\n';
}
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t = 1;
	// cin >> t;
	// cout << fixed << setprecision(12);
	for (int i = 1; i <= t; i++)
	{
		solve();
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...