#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int k, n;
cin>>k>>n;
vector<vector<int>>ile(k), kon(k);
vector<int>nic(n, -1), nic2(n, 0);
kon[0]=nic;
ile[0]=nic2;
for(int i=1; i<k; i++)
{
int l;
cin>>l;
for(int j=0; j<l; j++)
{
int cur;
cin>>cur;
cur--;
ile[i].push_back(0);
kon[i].push_back(cur);
}
}
int res=0;
int rez=0;
for(int i=k-1; i>=0; i--)
{
int currez=0;
for(int j=0; j<kon[i].size(); j++)
{
if(!ile[i][j])
{
if(rez)rez--;
else res++;
ile[i][j]=1;
}
if(kon[i][j]==-1) currez+=ile[i][j];
else ile[i-1][kon[i][j]]+=ile[i][j];
}
rez+=currez;
}
cout<<res;
}
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 | #include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int k, n; cin>>k>>n; vector<vector<int>>ile(k), kon(k); vector<int>nic(n, -1), nic2(n, 0); kon[0]=nic; ile[0]=nic2; for(int i=1; i<k; i++) { int l; cin>>l; for(int j=0; j<l; j++) { int cur; cin>>cur; cur--; ile[i].push_back(0); kon[i].push_back(cur); } } int res=0; int rez=0; for(int i=k-1; i>=0; i--) { int currez=0; for(int j=0; j<kon[i].size(); j++) { if(!ile[i][j]) { if(rez)rez--; else res++; ile[i][j]=1; } if(kon[i][j]==-1) currez+=ile[i][j]; else ile[i-1][kon[i][j]]+=ile[i][j]; } rez+=currez; } cout<<res; } |
English