1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<vector>
#define PB push_back
constexpr int MN=5e5+15;
using namespace std;
vector<int>prew[MN];
vector<int>need[MN];
int main(){
ios_base::sync_with_stdio(0);
int k,n,a;
cin>>k>>n;
need[0].resize(n);
for(int j=1;j<k;j++){cin>>n; need[j].resize(n); for(int z=0;z<n;z++){cin>>a;prew[j].PB(a);}}
int ma=0;
for(int j=k-1;j>=0;j--)
{
    int suma=0;
    for(int z=0;z<need[j].size();z++) {need[j][z]=max(1,need[j][z]); suma+=need[j][z];}
    //cout<<j<<' '<<suma<<endl;
    ma=max(ma,suma);if(j==0) break;
    for(int z=0;z<need[j].size();z++) {if(prew[j][z]!=0)need[j-1][prew[j][z]-1]+=need[j][z];}
}
cout<<ma<<endl;
}