#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int k, n, max_required = 0;
cin >> k >> n;
vector<vector<int>> meetings;
vector<vector<int>> counter;
meetings.push_back(vector<int>(n, 0));
counter.push_back(vector<int>(n, 0));
for (int i = 1; i < k; i++) {
int count;
cin >> count;
meetings.push_back(vector<int>(count));
counter.push_back(vector<int>(count, 0));
for (int j = 0; j < count; j++) {
cin >> meetings[i][j];
}
}
for (int i = k - 1; i >= 0; i--) {
int current_required = 0;
for (int j = 0; j < meetings[i].size(); j++) {
if (counter[i][j] == 0) {
counter[i][j] = 1;
}
if (i >= 1 && meetings[i][j] != 0) {
counter[i - 1][meetings[i][j] - 1] += counter[i][j];
}
current_required += counter[i][j];
}
max_required = max(max_required, current_required);
}
cout << max_required << 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 | #include <bits/stdc++.h> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int k, n, max_required = 0; cin >> k >> n; vector<vector<int>> meetings; vector<vector<int>> counter; meetings.push_back(vector<int>(n, 0)); counter.push_back(vector<int>(n, 0)); for (int i = 1; i < k; i++) { int count; cin >> count; meetings.push_back(vector<int>(count)); counter.push_back(vector<int>(count, 0)); for (int j = 0; j < count; j++) { cin >> meetings[i][j]; } } for (int i = k - 1; i >= 0; i--) { int current_required = 0; for (int j = 0; j < meetings[i].size(); j++) { if (counter[i][j] == 0) { counter[i][j] = 1; } if (i >= 1 && meetings[i][j] != 0) { counter[i - 1][meetings[i][j] - 1] += counter[i][j]; } current_required += counter[i][j]; } max_required = max(max_required, current_required); } cout << max_required << endl; return 0; } |
English