#include "bits/stdc++.h"
using namespace std;
#define rep(i,a,b) for(int i=(a); i<(b); ++i)
#define all(x) x.begin(),x.end()
#define sz(x) int(x.size())
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<vi> vvi;
int main(){
cin.tie(NULL),ios::sync_with_stdio(false);
int k, n1; cin >> k >> n1;
vvi a(k);
a[0].resize(n1);
vvi inp(k);
rep(i,1,k){
int n; cin >> n;
inp[i].resize(n);
a[i].resize(n);
for(auto& c : inp[i]) cin >> c;
}
int ans = 0;
for(int i = k-1; i >= 0; --i) {
for(auto& c : a[i]) c = max(c, 1);
ans = max(ans, accumulate(all(a[i]),0));
if (i > 0) {
for(int j = 0; j < a[i].size(); ++j) if (inp[i][j]) {
a[i-1][inp[i][j] - 1] += a[i][j];
}
}
}
cout << ans << '\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 | #include "bits/stdc++.h" using namespace std; #define rep(i,a,b) for(int i=(a); i<(b); ++i) #define all(x) x.begin(),x.end() #define sz(x) int(x.size()) typedef long long ll; typedef unsigned long long ull; typedef vector<int> vi; typedef vector<vi> vvi; int main(){ cin.tie(NULL),ios::sync_with_stdio(false); int k, n1; cin >> k >> n1; vvi a(k); a[0].resize(n1); vvi inp(k); rep(i,1,k){ int n; cin >> n; inp[i].resize(n); a[i].resize(n); for(auto& c : inp[i]) cin >> c; } int ans = 0; for(int i = k-1; i >= 0; --i) { for(auto& c : a[i]) c = max(c, 1); ans = max(ans, accumulate(all(a[i]),0)); if (i > 0) { for(int j = 0; j < a[i].size(); ++j) if (inp[i][j]) { a[i-1][inp[i][j] - 1] += a[i][j]; } } } cout << ans << '\n'; } |
English