#include <bits/stdc++.h>
#define F(i, a, b) for(int i = a; i <= b; i++)
#define pb push_back
#define be(X) X.begin(), X.end()
#define pii pair<int,int>
#define V vector
#define f first
#define s second
using namespace std;
V<int> war[500009];
V<int> tab[500009];
int main(){
int k, n1;
cin >> k >> n1;
war[1].resize(n1+9);
for(auto &i : war[1]) i = 0;
tab[1].resize(n1+9);
for(auto &i : tab[1]) i = 0;
tab[0].resize(9);
for(auto &i : tab[0]) i = 0;
war[1][0] = n1;
F(i, 2, k){
int n;
cin >> n;
tab[i].resize(n+9);
for(auto &l : tab[i]) l = 0;
war[i].resize(n+9);
for(auto &l : war[i]) l = 0;
war[i][0] = n;
F(j, 1, n){
cin >> war[i][j];
}
}
int wyn=0;
for(int i = k; i > 0; i--){
int cur = 0;
int n = war[i][0];
F(j, 1, n){
if(tab[i][j] == 0) cur++;
else cur += tab[i][j];
}
wyn = max(wyn, cur);
F(j, 1, n){
if(tab[i][j] == 0) tab[i][j] = 1;
tab[i-1][war[i][j]] += tab[i][j];
}
}
cout << wyn;
}
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | #include <bits/stdc++.h> #define F(i, a, b) for(int i = a; i <= b; i++) #define pb push_back #define be(X) X.begin(), X.end() #define pii pair<int,int> #define V vector #define f first #define s second using namespace std; V<int> war[500009]; V<int> tab[500009]; int main(){ int k, n1; cin >> k >> n1; war[1].resize(n1+9); for(auto &i : war[1]) i = 0; tab[1].resize(n1+9); for(auto &i : tab[1]) i = 0; tab[0].resize(9); for(auto &i : tab[0]) i = 0; war[1][0] = n1; F(i, 2, k){ int n; cin >> n; tab[i].resize(n+9); for(auto &l : tab[i]) l = 0; war[i].resize(n+9); for(auto &l : war[i]) l = 0; war[i][0] = n; F(j, 1, n){ cin >> war[i][j]; } } int wyn=0; for(int i = k; i > 0; i--){ int cur = 0; int n = war[i][0]; F(j, 1, n){ if(tab[i][j] == 0) cur++; else cur += tab[i][j]; } wyn = max(wyn, cur); F(j, 1, n){ if(tab[i][j] == 0) tab[i][j] = 1; tab[i-1][war[i][j]] += tab[i][j]; } } cout << wyn; } |
English