#include<iostream>
#include<vector>
#define PB push_back
constexpr int MN=5e5+15;
using namespace std;
vector<int>prew[MN];
vector<int>need[MN];
int main(){
ios_base::sync_with_stdio(0);
int k,n,a;
cin>>k>>n;
need[0].resize(n);
for(int j=1;j<k;j++){cin>>n; need[j].resize(n); for(int z=0;z<n;z++){cin>>a;prew[j].PB(a);}}
int ma=0;
for(int j=k-1;j>=0;j--)
{
int suma=0;
for(int z=0;z<need[j].size();z++) {need[j][z]=max(1,need[j][z]); suma+=need[j][z];}
//cout<<j<<' '<<suma<<endl;
ma=max(ma,suma);if(j==0) break;
for(int z=0;z<need[j].size();z++) {if(prew[j][z]!=0)need[j-1][prew[j][z]-1]+=need[j][z];}
}
cout<<ma<<endl;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include<iostream> #include<vector> #define PB push_back constexpr int MN=5e5+15; using namespace std; vector<int>prew[MN]; vector<int>need[MN]; int main(){ ios_base::sync_with_stdio(0); int k,n,a; cin>>k>>n; need[0].resize(n); for(int j=1;j<k;j++){cin>>n; need[j].resize(n); for(int z=0;z<n;z++){cin>>a;prew[j].PB(a);}} int ma=0; for(int j=k-1;j>=0;j--) { int suma=0; for(int z=0;z<need[j].size();z++) {need[j][z]=max(1,need[j][z]); suma+=need[j][z];} //cout<<j<<' '<<suma<<endl; ma=max(ma,suma);if(j==0) break; for(int z=0;z<need[j].size();z++) {if(prew[j][z]!=0)need[j-1][prew[j][z]-1]+=need[j][z];} } cout<<ma<<endl; } |
English