#include <iostream>
#include <vector>
using namespace std;
const int stala=5e5+10;
vector<int>w[stala];
vector<int>dp[stala];
int bezrobotni[stala];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int ile,k;
cin>>ile>>k;
w[1].resize(k);
dp[1].resize(k);
for(int i=2;i<=ile;i++){
int ile2;
cin>>ile2;
for(int j=1;j<=ile2;j++){
int x;
cin>>x;
w[i].push_back(x);
dp[i].push_back(0);
}
}
int wyn=0;
for(int i=ile;i>=1;i--){
for(int j=0;j<(int)w[i].size();j++){
if(dp[i][j]==0){
if(bezrobotni[i]>0){
bezrobotni[i]--;
}
else{
wyn++;
}
dp[i][j]=1;
}
if(w[i][j]==0){
bezrobotni[i-1]+=dp[i][j];
}
else{
int x=w[i][j];
dp[i-1][x-1]+=dp[i][j];
}
}
bezrobotni[i-1]+=bezrobotni[i];
}
cout<<wyn;
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 | #include <iostream> #include <vector> using namespace std; const int stala=5e5+10; vector<int>w[stala]; vector<int>dp[stala]; int bezrobotni[stala]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int ile,k; cin>>ile>>k; w[1].resize(k); dp[1].resize(k); for(int i=2;i<=ile;i++){ int ile2; cin>>ile2; for(int j=1;j<=ile2;j++){ int x; cin>>x; w[i].push_back(x); dp[i].push_back(0); } } int wyn=0; for(int i=ile;i>=1;i--){ for(int j=0;j<(int)w[i].size();j++){ if(dp[i][j]==0){ if(bezrobotni[i]>0){ bezrobotni[i]--; } else{ wyn++; } dp[i][j]=1; } if(w[i][j]==0){ bezrobotni[i-1]+=dp[i][j]; } else{ int x=w[i][j]; dp[i-1][x-1]+=dp[i][j]; } } bezrobotni[i-1]+=bezrobotni[i]; } cout<<wyn; return 0; } |
English