// Online C++ Compiler - Build, Compile and Run your C++ programs online in your favorite browser
#include<iostream>
#include<vector>
int main()
{
int k;
int n1;
std::cin >> k >> n1;
std::vector < std::vector <int> > V(k);
std::vector < std::vector <int> > S(k);
for (int i = 0; i < n1; i++) {
V[0].push_back(0);
S[0].push_back(0);
}
for (int i = 1; i <= k - 1; i++){
int n;
std::cin >> n;
while(n--){
int a;
std::cin >> a;
V[i].push_back(a);
S[i].push_back(0);
}
}
int maks = 0;
for (int i = k - 1; i >= 0; i--) {
int suma = 0;
for (int j = 0; j < S[i].size(); j++) {
if(S[i][j] == 0) {
S[i][j] = 1;
}
suma += S[i][j];
if(V[i][j] != 0) {
S[i-1][V[i][j]-1] += S[i][j];
}
}
maks = std::max(maks, suma);
}
std::cout << maks << '\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 37 38 39 40 41 42 | // Online C++ Compiler - Build, Compile and Run your C++ programs online in your favorite browser #include<iostream> #include<vector> int main() { int k; int n1; std::cin >> k >> n1; std::vector < std::vector <int> > V(k); std::vector < std::vector <int> > S(k); for (int i = 0; i < n1; i++) { V[0].push_back(0); S[0].push_back(0); } for (int i = 1; i <= k - 1; i++){ int n; std::cin >> n; while(n--){ int a; std::cin >> a; V[i].push_back(a); S[i].push_back(0); } } int maks = 0; for (int i = k - 1; i >= 0; i--) { int suma = 0; for (int j = 0; j < S[i].size(); j++) { if(S[i][j] == 0) { S[i][j] = 1; } suma += S[i][j]; if(V[i][j] != 0) { S[i-1][V[i][j]-1] += S[i][j]; } } maks = std::max(maks, suma); } std::cout << maks << '\n'; } |
English