/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,t[102][102],dl[102],wsk[102],vis[102];
int main()
{
cin>>n;
vis[1]=1; ll ok=0;
for(ll i=1; i<=n; i++){
ll k; cin>>k;
dl[i]=k;
wsk[i]=1;
if(k>1 && vis[i]==1)
ok=1;
for(int j=1; j<=k; j++){
cin>>t[i][j];
if(vis[i]==1)
vis[t[i][j]]=1;
}
}
if(!ok){
cout<<1;
return 0;
}
ll k=n,res=0;
while(k!=n || res==0){
res++;
ll i=1;
while(dl[i]){
ll j=t[i][wsk[i]];
wsk[i]++;
if(wsk[i]==2)
k--;
if(wsk[i]>dl[i]){
wsk[i]=1;
k++;
}
i=j;
}
}
cout<<res;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | /****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include <bits/stdc++.h> #define ll long long using namespace std; ll n,t[102][102],dl[102],wsk[102],vis[102]; int main() { cin>>n; vis[1]=1; ll ok=0; for(ll i=1; i<=n; i++){ ll k; cin>>k; dl[i]=k; wsk[i]=1; if(k>1 && vis[i]==1) ok=1; for(int j=1; j<=k; j++){ cin>>t[i][j]; if(vis[i]==1) vis[t[i][j]]=1; } } if(!ok){ cout<<1; return 0; } ll k=n,res=0; while(k!=n || res==0){ res++; ll i=1; while(dl[i]){ ll j=t[i][wsk[i]]; wsk[i]++; if(wsk[i]==2) k--; if(wsk[i]>dl[i]){ wsk[i]=1; k++; } i=j; } } cout<<res; return 0; } |
English