#include <bits/stdc++.h>
using namespace std;
vector<int> pop[500007];
vector<int> ile[500007];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int k, n;
cin >> k >> n;
for (int i = 0; i < n; i++) {
ile[0].push_back(0);
pop[0].push_back(0);
}
for (int i = 1; i < k; i++) {
cin >> n;
for (int j = 0; j < n; j++) {
int p;
cin >> p;
pop[i].push_back(p);
ile[i].push_back(0);
}
}
int wyn = 0;
for (int i = k - 1; i >= 0; i--) {
int sum = 0;
for (int j = 0; j < pop[i].size(); j++) {
ile[i][j] = max(ile[i][j], 1);
sum += ile[i][j];
int p = pop[i][j];
if (p != 0) {
ile[i - 1][p - 1] += ile[i][j];
}
}
wyn = max(wyn, sum);
}
// cout << "\n";
// for (int i = 0; i < k; i++) {
// for (int j = 0; j < ile[i].size(); j++) {
// cout << ile[i][j] << " ";
// }
// cout << "\n";
// }
// cout << "\n";
// for (int i = 0; i < k; i++) {
// for (int j = 0; j < ile[i].size(); j++) {
// cout << pop[i][j] << " ";
// }
// cout << "\n";
// }
cout << wyn;
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <bits/stdc++.h> using namespace std; vector<int> pop[500007]; vector<int> ile[500007]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int k, n; cin >> k >> n; for (int i = 0; i < n; i++) { ile[0].push_back(0); pop[0].push_back(0); } for (int i = 1; i < k; i++) { cin >> n; for (int j = 0; j < n; j++) { int p; cin >> p; pop[i].push_back(p); ile[i].push_back(0); } } int wyn = 0; for (int i = k - 1; i >= 0; i--) { int sum = 0; for (int j = 0; j < pop[i].size(); j++) { ile[i][j] = max(ile[i][j], 1); sum += ile[i][j]; int p = pop[i][j]; if (p != 0) { ile[i - 1][p - 1] += ile[i][j]; } } wyn = max(wyn, sum); } // cout << "\n"; // for (int i = 0; i < k; i++) { // for (int j = 0; j < ile[i].size(); j++) { // cout << ile[i][j] << " "; // } // cout << "\n"; // } // cout << "\n"; // for (int i = 0; i < k; i++) { // for (int j = 0; j < ile[i].size(); j++) { // cout << pop[i][j] << " "; // } // cout << "\n"; // } cout << wyn; return 0; } |
English