#include <iostream>
#include <vector>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio();
int k;
cin>>k;
vector<vector<int>> vec(k);
vector<vector<int>> vec2(k);
int res = 0;
{
int n1;
cin>>n1;
vec[0].resize(n1);
vec2[0].resize(n1);
}
for(int i=1; i<k; i++) {
int nc;
cin>>nc;
vec[i].resize(nc);
vec2[i].resize(nc);
for(auto& x : vec[i])
cin>>x;
}
for(int i=k-1; i>=0; i--) {
int cnt = 0;
for(auto& x : vec2[i]) {
x = max(x, 1);
cnt += x;
}
for(int j=0; j<vec[i].size(); j++) {
int x = vec[i][j];
if(x > 0) {
vec2[i-1][x-1] += vec2[i][j];
}
}
res = max(res, cnt);
}
cout<<res<<"\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 43 | #include <iostream> #include <vector> using namespace std; int main() { cin.tie(0)->sync_with_stdio(); int k; cin>>k; vector<vector<int>> vec(k); vector<vector<int>> vec2(k); int res = 0; { int n1; cin>>n1; vec[0].resize(n1); vec2[0].resize(n1); } for(int i=1; i<k; i++) { int nc; cin>>nc; vec[i].resize(nc); vec2[i].resize(nc); for(auto& x : vec[i]) cin>>x; } for(int i=k-1; i>=0; i--) { int cnt = 0; for(auto& x : vec2[i]) { x = max(x, 1); cnt += x; } for(int j=0; j<vec[i].size(); j++) { int x = vec[i][j]; if(x > 0) { vec2[i-1][x-1] += vec2[i][j]; } } res = max(res, cnt); } cout<<res<<"\n"; } |
English