#include<bits/stdc++.h>
using namespace std;
const int MAXN=5005;
vector<int> ds[MAXN];
int dp[MAXN][MAXN];
queue<int> Q;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int m;
cin>>m;
while(m--)
{
int res;
cin>>res;
ds[res].push_back(i);
}
}
long long ans=1e18;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++) dp[i][j]=1e9*(i!=j);
Q.push(i);
while(!Q.empty())
{
int a=Q.front();
Q.pop();
for(auto v:ds[a]) if(dp[i][v]>dp[i][a]+1) dp[i][v]=dp[i][a]+1,Q.push(v);
}
long long res=0;
for(int j=1;j<=n;j++) res+=dp[i][j]+1;
ans=min(ans,res);
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |