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

vector<pair<LL, LL>> v[500009];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	LL k, n;
	cin>>k>>n;
	v[0].push_back({0, 0});
	for(int i=0; i<=n; i++)v[1].push_back({0, 0});
	for(int j=2; j<=k; j++){
		cin>>n;
		v[j].push_back({0, 0});
		for(int i=1; i<=n; i++){
			LL a;
			cin>>a;
			v[j].push_back({a, 0});
		}
	}
	
	for(int j=k; j>=1; j--){
		int n = v[j].size();
		for(int i=1; i<n; i++){
			if(v[j][i].second == 0){
				v[j][i].second++;
				v[j][0].second = max(0LL, v[j][0].second - 1);
			}
			v[j-1][v[j][i].first].second += v[j][i].second;
		}
		v[j-1][0].second += v[j][0].second;
	}
	
	cout<<v[0][0].second<<"\n";
	
	return 0;
}