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