#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> redges;
int main(){
cin.tie(0)->sync_with_stdio(0);
int k, n1; cin>>k>>n1;
int out = n1;
vector<vector<int>> values, counts;
values.push_back(vector<int>(n1, 0));
counts.push_back(vector<int>(n1, 0));
for(int i = 1; i<k; i++){
int v; cin>>v;
values.push_back(vector<int>(v, 0));
counts.push_back(vector<int>(v, 0));
for(int j = 0; j<v; j++){
int a; cin>>a;
values[i][j] = a;
}
}
for(int i = k - 1; i>0; i--){
for(int j = 0; j<counts[i].size(); j++){
counts[i][j] = max(counts[i][j], 1);
}
for(int j = 0; j<values[i].size(); j++){
int prval = values[i][j];
if(prval == 0) continue;
counts[i - 1][prval-1] += counts[i][j];
}
}
for(int j = 0; j<counts[0].size(); j++){
counts[0][j] = max(counts[0][j], 1);
}
for(int i = 0; i<counts.size(); i++){
int tsum = 0;
for(int j : counts[i]){
tsum += j;
}
out = max(out, tsum);
}
cout<<out<<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 48 | #include <bits/stdc++.h> using namespace std; vector<vector<int>> redges; int main(){ cin.tie(0)->sync_with_stdio(0); int k, n1; cin>>k>>n1; int out = n1; vector<vector<int>> values, counts; values.push_back(vector<int>(n1, 0)); counts.push_back(vector<int>(n1, 0)); for(int i = 1; i<k; i++){ int v; cin>>v; values.push_back(vector<int>(v, 0)); counts.push_back(vector<int>(v, 0)); for(int j = 0; j<v; j++){ int a; cin>>a; values[i][j] = a; } } for(int i = k - 1; i>0; i--){ for(int j = 0; j<counts[i].size(); j++){ counts[i][j] = max(counts[i][j], 1); } for(int j = 0; j<values[i].size(); j++){ int prval = values[i][j]; if(prval == 0) continue; counts[i - 1][prval-1] += counts[i][j]; } } for(int j = 0; j<counts[0].size(); j++){ counts[0][j] = max(counts[0][j], 1); } for(int i = 0; i<counts.size(); i++){ int tsum = 0; for(int j : counts[i]){ tsum += j; } out = max(out, tsum); } cout<<out<<endl; return 0; } |
English