#include <bits/stdc++.h>
using namespace std;
int k,n,i,j,b,w,z;
vector<vector<int>> a,v;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
a={{}};
v={{}};
cin >> k >> n;
for(i=0;i<n;i++) {a[0].push_back(0); v[0].push_back(0);}
for(i=1;i<k;i++) {
a.push_back({});
v.push_back({});
cin >> n;
for(j=0;j<n;j++) {
cin >> b;
a[i].push_back(b);
v[i].push_back(0);
}
}
w=0;
for(i=k-1;i>=0;i--) {
z=0;
for(j=0;j<a[i].size();j++){
if(v[i][j]==0) v[i][j]=1;
z+=v[i][j];
if(i>0 and a[i][j]>0) v[i-1][a[i][j]-1]+=v[i][j];
}
w=max(w,z);
}
cout << w << '\n';
}
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; int k,n,i,j,b,w,z; vector<vector<int>> a,v; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); a={{}}; v={{}}; cin >> k >> n; for(i=0;i<n;i++) {a[0].push_back(0); v[0].push_back(0);} for(i=1;i<k;i++) { a.push_back({}); v.push_back({}); cin >> n; for(j=0;j<n;j++) { cin >> b; a[i].push_back(b); v[i].push_back(0); } } w=0; for(i=k-1;i>=0;i--) { z=0; for(j=0;j<a[i].size();j++){ if(v[i][j]==0) v[i][j]=1; z+=v[i][j]; if(i>0 and a[i][j]>0) v[i-1][a[i][j]-1]+=v[i][j]; } w=max(w,z); } cout << w << '\n'; } |
English