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
#include "bits/stdc++.h"
using namespace std;
using ll = long long;

int const N = 5e5+5;
int n[N], k;
vector <int> v[N];

int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> k >> n[1];
    for(int i = 2; i <= k; ++i){
        cin >> n[i];
        for(int j = 1; j <= n[i]; ++j){
            int x; cin >> x;
            v[i].push_back(x);
        }
    }
    ll ans = n[k];
    vector <ll> a(n[k]+1, 1);
    for(int i = k; i > 1; --i){
        vector <ll> b(n[i-1]+1, 0);
        for(int j = 1; j <= n[i]; ++j){
            if(v[i][j-1] == 0) continue;
            b[v[i][j-1]] += a[j];
        }
        ll sum = 0;
        for(int j = 1; j <= n[i-1]; ++j){
            b[j] = max(1LL, b[j]);
            sum += b[j];
        }
        ans = max(ans, sum);
        a = move(b);
    }
    cout << ans << '\n';
}