#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin>>k>>n;
vector<vector<int>>v(k),ss(k);
v[0]=vector<int>(n+1,0);
ss[0]=vector<int>(n+1,0);
vector<int>nn={n};
for(int i=1; i<k; i++)
{
cin>>n;
nn.push_back(n);
v[i]=vector<int>(n+1,0);
ss[i]=vector<int>(n+1,0);
for(int j=1; j<=n; j++)
cin>>v[i][j];
}
int res=0;
int fre=0;
for(int i=k-1; i>=0; i--)
{
n=nn[i];
int pot=0;
for(int j=1; j<=n; j++)
{
if(ss[i][j]==0)
{
if(fre)
{
ss[i][j]=1;
fre--;
}
else
{
ss[i][j]=1;
res++;
}
}
if(v[i][j]==0)
pot+=ss[i][j];
else
ss[i-1][v[i][j]]+=ss[i][j];
}
fre+=pot;
}
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <bits/stdc++.h> using namespace std; int main() { int n,k; cin>>k>>n; vector<vector<int>>v(k),ss(k); v[0]=vector<int>(n+1,0); ss[0]=vector<int>(n+1,0); vector<int>nn={n}; for(int i=1; i<k; i++) { cin>>n; nn.push_back(n); v[i]=vector<int>(n+1,0); ss[i]=vector<int>(n+1,0); for(int j=1; j<=n; j++) cin>>v[i][j]; } int res=0; int fre=0; for(int i=k-1; i>=0; i--) { n=nn[i]; int pot=0; for(int j=1; j<=n; j++) { if(ss[i][j]==0) { if(fre) { ss[i][j]=1; fre--; } else { ss[i][j]=1; res++; } } if(v[i][j]==0) pot+=ss[i][j]; else ss[i-1][v[i][j]]+=ss[i][j]; } fre+=pot; } cout<<res<<"\n"; } |
English