#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(NULL);
int ld, d1kon;
cin >> ld >> d1kon;
vector<vector<int>> oj(ld, vector<int>());
oj[0].resize(d1kon + 1);
for (int i = 1; i < ld; i++)
{
int lkon;
cin >> lkon;
oj[i].resize(lkon + 1);
for (int j = 1; j <= lkon; j++)
{
cin >> oj[i][j];
}
}
vector<int> day_need(ld, 0);
vector<vector<int>> need(ld, vector<int>());
for (int i = 0; i < ld; i++)
{
need[i] = vector<int>(oj[i].size(), 0);
}
for (int i = ld - 1; i >= 0; i--)
{
for (int j = 1; j < oj[i].size(); j++)
{
if (need[i][j] == 0)
{
need[i][j] = 1;
}
day_need[i] += need[i][j];
}
if(i == 0){
break;
}
for (int j = 1; j < oj[i].size(); j++)
{
need[i - 1][oj[i][j]] += need[i][j];
}
}
int result = 0;
for(int i = 0; i < ld; i++){
result = max(result, day_need[i]);
}
cout << result << "\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 48 49 50 51 52 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int ld, d1kon; cin >> ld >> d1kon; vector<vector<int>> oj(ld, vector<int>()); oj[0].resize(d1kon + 1); for (int i = 1; i < ld; i++) { int lkon; cin >> lkon; oj[i].resize(lkon + 1); for (int j = 1; j <= lkon; j++) { cin >> oj[i][j]; } } vector<int> day_need(ld, 0); vector<vector<int>> need(ld, vector<int>()); for (int i = 0; i < ld; i++) { need[i] = vector<int>(oj[i].size(), 0); } for (int i = ld - 1; i >= 0; i--) { for (int j = 1; j < oj[i].size(); j++) { if (need[i][j] == 0) { need[i][j] = 1; } day_need[i] += need[i][j]; } if(i == 0){ break; } for (int j = 1; j < oj[i].size(); j++) { need[i - 1][oj[i][j]] += need[i][j]; } } int result = 0; for(int i = 0; i < ld; i++){ result = max(result, day_need[i]); } cout << result << "\n"; } |
English