#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int k, n_1; cin >> k >> n_1;
vector<vector<int>> D(k);
map<int, map<int, int>> D2;
D[0] = vector<int> (n_1);
for(int i=1; i<k; i++){
int x; cin >> x;
D[i] = vector<int> (x);
for(auto &d : D[i]){
cin >> d;
d--;
}
}
int res = 0;
for(int day = k-1; day>=0; day--){
int this_day_res=0;
for(int i=0; i<D[day].size(); i++){
this_day_res+=max(1LL, D2[day][i]);
D2[day-1][D[day][i]]+=max(1LL, D2[day][i]);
}
res = max(res, this_day_res);
}
cout << res << '\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 | #include <bits/stdc++.h> #define int long long using namespace std; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int k, n_1; cin >> k >> n_1; vector<vector<int>> D(k); map<int, map<int, int>> D2; D[0] = vector<int> (n_1); for(int i=1; i<k; i++){ int x; cin >> x; D[i] = vector<int> (x); for(auto &d : D[i]){ cin >> d; d--; } } int res = 0; for(int day = k-1; day>=0; day--){ int this_day_res=0; for(int i=0; i<D[day].size(); i++){ this_day_res+=max(1LL, D2[day][i]); D2[day-1][D[day][i]]+=max(1LL, D2[day][i]); } res = max(res, this_day_res); } cout << res << '\n'; } |
English