Submission #954681

#TimeUsernameProblemLanguageResultExecution timeMemory
9546814QT0RBosses (BOI16_bosses)C++17
100 / 100
515 ms860 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

ll visited[5002];
vector<ll> graph[5002];
ll iter=0;
queue<pair<ll,ll>> q;

ll bfs(ll v, ll n){
	visited[v]=iter;
	q.push({v,1});
	ll ans=0;
	while(q.size()){
		auto [v,d]=q.front();
		q.pop();
		ans+=d;
		for (auto u : graph[v])if (visited[u]!=iter){
			visited[u]=iter;
			q.push({u,d+1});
		}
	}
	for (ll i = 1; i<=n; i++)if (visited[i]!=iter)return 1e18;
	return ans;
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	ll n,k,v;
	cin >> n;
	for (ll i = 1; i<=n; i++){
		cin >> k;
		for (ll j = 1; j<=k; j++){
			cin >> v;
			graph[v].push_back(i);
		}
	}
	ll mn=1e18;
	for (ll i = 1; i<=n; i++){
		iter++;
		mn=min(mn,bfs(i,n));
	}
	cout << mn << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...