#include<bits/stdc++.h>
using namespace std;
#define int long long
#define elif else if
#define ft first
#define sc second
#define pb push_back
#define pII pair<int,int>
#define fast_IO ios_base::sync_with_stdio(NULL);cin.tie(NULL);cout.tie(NULL)
const int sizen = 2e6+11;
const int sizen_s = 5e3+32;
const int oo = 1e16+11;
int bfs_odl[sizen_s][sizen_s];
int WYNIKI[sizen_s];
int N,K;
int t=1, X;
vector<int>vec[sizen];
void bfs(int kolor)
{
queue<int>Q;
Q.push(kolor);
int e =0;
while(!Q.empty())
{
e++;
int v = Q.front();
for(auto i : vec[v])
{
if(bfs_odl[kolor][i] == 0)
{
bfs_odl[kolor][i] = bfs_odl[kolor][v] + 1;
WYNIKI[kolor] += bfs_odl[kolor][i];
Q.push(i);
}
}
Q.pop();
}
if(e != N)
{
WYNIKI[kolor] = oo;
}
}
void solve()
{
cin >> N;
for(int i = 1; i<= N ; i++)
{
cin >> K;
for (int j = 1 ; j <= K ; j++)
{
cin >> X;
vec[X].pb(i);
}
}
int W = oo;
for (int i = 1 ; i<= N ; i++)
{
bfs_odl[i][i] = 1;
bfs(i);
W = min(W,WYNIKI[i]);
}
cout << W+1 << "\n";
}
signed main()
{
//cin >> t;
while(t--)
{
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |