#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
int k,n;
cin >> k >> n;
vector<vector<int> > tab(k),s(k);
vector<int> N(k);
N[0]=n;
tab[0].push_back(-1);
s[0].push_back(-1);
for (int j=0;j<N[0];j++) {
tab[0].push_back(0);
s[0].push_back(0);
}
for (int i=1;i<k;i++) {
cin >> N[i];
tab[i].push_back(-1);
s[i].push_back(-1);
for (int j=0;j<N[i];j++) {
int a;
cin >> a;
tab[i].push_back(a);
s[i].push_back(0);
}
}
int m=0;
for (int i=k-1;i>=0;i--) {
int ile=0;
for (int j=1;j<=N[i];j++) {
if (s[i][j]==0)
s[i][j]=1;
if (tab[i][j]>0) {
s[i-1][tab[i][j]]+=s[i][j];
}
ile += s[i][j];
}
if (ile>m)
m=ile;
//for (auto j : s[i]) cout << j << " "; cout << endl;
}
cout << m << endl;
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 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); int k,n; cin >> k >> n; vector<vector<int> > tab(k),s(k); vector<int> N(k); N[0]=n; tab[0].push_back(-1); s[0].push_back(-1); for (int j=0;j<N[0];j++) { tab[0].push_back(0); s[0].push_back(0); } for (int i=1;i<k;i++) { cin >> N[i]; tab[i].push_back(-1); s[i].push_back(-1); for (int j=0;j<N[i];j++) { int a; cin >> a; tab[i].push_back(a); s[i].push_back(0); } } int m=0; for (int i=k-1;i>=0;i--) { int ile=0; for (int j=1;j<=N[i];j++) { if (s[i][j]==0) s[i][j]=1; if (tab[i][j]>0) { s[i-1][tab[i][j]]+=s[i][j]; } ile += s[i][j]; } if (ile>m) m=ile; //for (auto j : s[i]) cout << j << " "; cout << endl; } cout << m << endl; return 0; } |
English