#include <bits/stdc++.h>
using namespace std;
int k, n, a, tmp, ans;
vector<vector<pair<int, int>>> vec;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> k >> n;
vec.resize(k);
for (int i = 0; i < n; ++i) {
vec[0].push_back({0, 0});
}
for (int i = 1; i < k; ++i) {
cin >> n;
for (int j = 0; j < n; ++j) {
cin >> a;
vec[i].push_back({a, 0});
}
}
for (int i = k - 1; i >= 0; --i) {
tmp = (int)vec[i].size();
for (auto j : vec[i]) {
if (j.second > 1) {
tmp += (j.second - 1);
}
if (i > 0 && j.first > 0) {
vec[i - 1][j.first - 1].second += max(1, j.second);
}
}
ans = max(ans, tmp);
}
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 42 43 44 45 46 47 | #include <bits/stdc++.h> using namespace std; int k, n, a, tmp, ans; vector<vector<pair<int, int>>> vec; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> k >> n; vec.resize(k); for (int i = 0; i < n; ++i) { vec[0].push_back({0, 0}); } for (int i = 1; i < k; ++i) { cin >> n; for (int j = 0; j < n; ++j) { cin >> a; vec[i].push_back({a, 0}); } } for (int i = k - 1; i >= 0; --i) { tmp = (int)vec[i].size(); for (auto j : vec[i]) { if (j.second > 1) { tmp += (j.second - 1); } if (i > 0 && j.first > 0) { vec[i - 1][j.first - 1].second += max(1, j.second); } } ans = max(ans, tmp); } cout << ans << '\n'; } |
English