#include<bits/stdc++.h>
using namespace std;
vector<int>Skad,Licznik,Ktory;
int main()
{ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int k,n0;
cin>>k>>n0;
int h=0;
Licznik.resize(n0+1,0);
Ktory.resize(n0+1,1);
Skad.resize(n0+1,0);
int last=n0;
for(int i=2;i<=k;i++)
{
int t;
cin>>t;
for(int j=1;j<=t;j++)
{
Licznik.push_back(0);
Ktory.push_back(i);
Skad.push_back(0);
int x;
cin>>x;
if(x==0){continue;}
Skad[(int)Skad.size()-1]=h+x;
}
h+=last;
last=t;
}
const int n=(int)Licznik.size()-1;
for(int i=n;i>=1;i--)
{
if(Licznik[i]==0){Licznik[i]=1;}
Licznik[Skad[i]]+=Licznik[i];
}
int wynik=0,suma=0;
for(int i=1;i<=n;i++)
{
suma+=Licznik[i];
if(i==n||Ktory[i+1]!=Ktory[i])
{
wynik=max(wynik,suma);
suma=0;
}
}
cout<<wynik<<'\n';
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 | #include<bits/stdc++.h> using namespace std; vector<int>Skad,Licznik,Ktory; int main() {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int k,n0; cin>>k>>n0; int h=0; Licznik.resize(n0+1,0); Ktory.resize(n0+1,1); Skad.resize(n0+1,0); int last=n0; for(int i=2;i<=k;i++) { int t; cin>>t; for(int j=1;j<=t;j++) { Licznik.push_back(0); Ktory.push_back(i); Skad.push_back(0); int x; cin>>x; if(x==0){continue;} Skad[(int)Skad.size()-1]=h+x; } h+=last; last=t; } const int n=(int)Licznik.size()-1; for(int i=n;i>=1;i--) { if(Licznik[i]==0){Licznik[i]=1;} Licznik[Skad[i]]+=Licznik[i]; } int wynik=0,suma=0; for(int i=1;i<=n;i++) { suma+=Licznik[i]; if(i==n||Ktory[i+1]!=Ktory[i]) { wynik=max(wynik,suma); suma=0; } } cout<<wynik<<'\n'; return 0; } |
English