#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll k;
cin >> k;
vector <vector <ll>> l(k);
vector <vector <ll>> il(k);
ll u;
cin >> u;
l[0].resize(u);
il[0].resize(u);
for (ll i = 1; i < k; i++) {
ll n;
cin >> n;
l[i].resize(n);
il[i].resize(n);
for (ll j = 0; j < n; j++) {
cin >> l[i][j];
l[i][j]--;
}
}
ll wyn = l[k - 1].size();
for (ll i = k - 1; i > 0; i--) {
ll zl = 0;
ll val = l[i - 1].size();
for (ll j = 0; j < l[i].size(); j++) {
if (l[i][j] != -1) {
if (il[i - 1][l[i][j]] == 0) {
val--;
}
if (il[i][j] == 0) {
il[i][j]++;
}
il[i - 1][l[i][j]] += il[i][j];
zl += il[i][j];
}
}
zl += val;
wyn = max(wyn, zl);
}
cout << wyn << '\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; using ll = long long; int main() { ios_base::sync_with_stdio(0); cin.tie(0); ll k; cin >> k; vector <vector <ll>> l(k); vector <vector <ll>> il(k); ll u; cin >> u; l[0].resize(u); il[0].resize(u); for (ll i = 1; i < k; i++) { ll n; cin >> n; l[i].resize(n); il[i].resize(n); for (ll j = 0; j < n; j++) { cin >> l[i][j]; l[i][j]--; } } ll wyn = l[k - 1].size(); for (ll i = k - 1; i > 0; i--) { ll zl = 0; ll val = l[i - 1].size(); for (ll j = 0; j < l[i].size(); j++) { if (l[i][j] != -1) { if (il[i - 1][l[i][j]] == 0) { val--; } if (il[i][j] == 0) { il[i][j]++; } il[i - 1][l[i][j]] += il[i][j]; zl += il[i][j]; } } zl += val; wyn = max(wyn, zl); } cout << wyn << '\n'; } |
English