#include <bits/stdc++.h>
using namespace std;
#define vve vector<vector<event>>
struct event {
int prev = 0;
int count = 0;
};
vve input(int n) {
vve days(n);
int f;
cin >> f;
days[0].resize(f);
for(int i=1; i<n; i++) {
int m;
cin >> m;
days[i].resize(m);
for(int j=0; j<m; j++)
cin >> days[i][j].prev;
}
return days;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
vve days = input(n);
int result = 0;
for(int i=n-1; i>=0; i--) {
int total = 0;
for(int j=0; j<days[i].size(); j++) {
days[i][j].count = max(days[i][j].count, 1);
total += days[i][j].count;
if(days[i][j].prev != 0)
days[i-1][days[i][j].prev-1].count += days[i][j].count;
}
result = max(result, total);
}
cout << result << "\n";
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 | #include <bits/stdc++.h> using namespace std; #define vve vector<vector<event>> struct event { int prev = 0; int count = 0; }; vve input(int n) { vve days(n); int f; cin >> f; days[0].resize(f); for(int i=1; i<n; i++) { int m; cin >> m; days[i].resize(m); for(int j=0; j<m; j++) cin >> days[i][j].prev; } return days; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin >> n; vve days = input(n); int result = 0; for(int i=n-1; i>=0; i--) { int total = 0; for(int j=0; j<days[i].size(); j++) { days[i][j].count = max(days[i][j].count, 1); total += days[i][j].count; if(days[i][j].prev != 0) days[i-1][days[i][j].prev-1].count += days[i][j].count; } result = max(result, total); } cout << result << "\n"; return 0; } |
English