#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int k;
cin>>k;
vector<int> n(k+1);
vector<int> day(k+2);
vector<int> parents;
cin>>n[1];
day[1]=0;
for(int j=0; j<n[1]; j++)
{
parents.push_back(0);
}
for(int i=2; i<=k; i++)
{
cin>>n[i];
day[i]=(int)parents.size();
for(int j=0; j<n[i]; j++)
{
int p;
cin>>p;
parents.push_back(p);
}
}
day[k+1]=(int)parents.size();
int total=(int)parents.size();
vector<long long> p(total,0);
for(int i=k; i>=2; i--)
{
for(int j=0; j<n[i]; j++)
{
int idx=day[i]+j;
if(p[idx]<1)
{
p[idx]=1;
}
int rel=parents[idx];
if(rel>0)
{
int id=day[i-1]+(rel-1);
p[id]+=p[idx];
}
}
}
for(int j=0; j<n[1]; j++)
{
if(p[j]<1)
{
p[j]=1;
}
}
long long result=0;
for(int i=1; i<=k; i++)
{
long long sum=0;
for(int j=0; j<n[i]; j++)
{
sum+=p[day[i]+j];
}
if(sum>result)
{
result=sum;
}
}
cout<<result<<endl;
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int k; cin>>k; vector<int> n(k+1); vector<int> day(k+2); vector<int> parents; cin>>n[1]; day[1]=0; for(int j=0; j<n[1]; j++) { parents.push_back(0); } for(int i=2; i<=k; i++) { cin>>n[i]; day[i]=(int)parents.size(); for(int j=0; j<n[i]; j++) { int p; cin>>p; parents.push_back(p); } } day[k+1]=(int)parents.size(); int total=(int)parents.size(); vector<long long> p(total,0); for(int i=k; i>=2; i--) { for(int j=0; j<n[i]; j++) { int idx=day[i]+j; if(p[idx]<1) { p[idx]=1; } int rel=parents[idx]; if(rel>0) { int id=day[i-1]+(rel-1); p[id]+=p[idx]; } } } for(int j=0; j<n[1]; j++) { if(p[j]<1) { p[j]=1; } } long long result=0; for(int i=1; i<=k; i++) { long long sum=0; for(int j=0; j<n[i]; j++) { sum+=p[day[i]+j]; } if(sum>result) { result=sum; } } cout<<result<<endl; return 0; } |
English