#include <bits/stdc++.h>
using namespace std;
int main() {
// std::ios_base::sync_with_stdio(false);
// std::cin.tie(NULL);
int n,m;
cin>>n>>m;
int garbage;
vector<vector<int>> graf,answer;
graf.assign(n,{});
graf[0].assign(m,0);
answer.assign(n,{});
answer[0].assign(m,0);
int pom;
for(int i=1;i<n;i++) {
cin>>garbage;
answer[i].assign(garbage,0);
for(int j=0;j<garbage;j++) {
cin>>pom;
graf[i].emplace_back(pom);
}
}
int mini=INT_MAX;
int act=0;
for(int i=n-1;i>=0;i--) {
for(int j=0;j<graf[i].size();j++) {
int val = graf[i][j];
if(answer[i][j] == 0) {
answer[i][j] = 1;
}
if(val!=0) {
answer[i-1][val-1]+=answer[i][j];
}
}
}
for(int i=n-1;i>=0;i--) {
act = 0;
for(int j=0;j<graf[i].size();j++) {
act+=answer[i][j];
}
mini=min(mini,act);
}
cout<<act;
return 0;
}
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 | #include <bits/stdc++.h> using namespace std; int main() { // std::ios_base::sync_with_stdio(false); // std::cin.tie(NULL); int n,m; cin>>n>>m; int garbage; vector<vector<int>> graf,answer; graf.assign(n,{}); graf[0].assign(m,0); answer.assign(n,{}); answer[0].assign(m,0); int pom; for(int i=1;i<n;i++) { cin>>garbage; answer[i].assign(garbage,0); for(int j=0;j<garbage;j++) { cin>>pom; graf[i].emplace_back(pom); } } int mini=INT_MAX; int act=0; for(int i=n-1;i>=0;i--) { for(int j=0;j<graf[i].size();j++) { int val = graf[i][j]; if(answer[i][j] == 0) { answer[i][j] = 1; } if(val!=0) { answer[i-1][val-1]+=answer[i][j]; } } } for(int i=n-1;i>=0;i--) { act = 0; for(int j=0;j<graf[i].size();j++) { act+=answer[i][j]; } mini=min(mini,act); } cout<<act; return 0; } |
English