#include <bits/stdc++.h>
using namespace std;
vector<int>a(500'123,-1);
vector<int>ile(500'123,0);
vector<int>pierwszy(500'123,0);
vector<pair<int,int>>przed;
int main(){
ios_base::sync_with_stdio(0);
int k,n;
int popp=0;
cin>>k>>n;
int akt=n;
int ile_pustych=0;
for(int i=0;i<k-1;i++){
int tt;
cin>>tt;
przed.emplace_back(make_pair(akt,akt+tt));
int pop=popp;
popp=akt;
while(tt--){
int x;
cin>>x;
if(x!=0)
a[akt]=x+pop-1;
else
a[akt]=-1;
akt++;
if(i==0 && x==0)
ile_pustych++;
}
}
int ans=0;
int akt_sum=0;
for(int i=akt-1;i>=0;i--){
if(!przed.empty()&&przed.back().first>i){
ans=max(akt_sum,ans);
akt_sum=0;
przed.pop_back();
}
if(ile[i]==0){
ile[i]=1;
}
if(a[i]!=-1)
ile[a[i]]+=ile[i];
akt_sum+=ile[i];
}
ans=max(ans,akt_sum);
cout<<ans;
}
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; vector<int>a(500'123,-1); vector<int>ile(500'123,0); vector<int>pierwszy(500'123,0); vector<pair<int,int>>przed; int main(){ ios_base::sync_with_stdio(0); int k,n; int popp=0; cin>>k>>n; int akt=n; int ile_pustych=0; for(int i=0;i<k-1;i++){ int tt; cin>>tt; przed.emplace_back(make_pair(akt,akt+tt)); int pop=popp; popp=akt; while(tt--){ int x; cin>>x; if(x!=0) a[akt]=x+pop-1; else a[akt]=-1; akt++; if(i==0 && x==0) ile_pustych++; } } int ans=0; int akt_sum=0; for(int i=akt-1;i>=0;i--){ if(!przed.empty()&&przed.back().first>i){ ans=max(akt_sum,ans); akt_sum=0; przed.pop_back(); } if(ile[i]==0){ ile[i]=1; } if(a[i]!=-1) ile[a[i]]+=ile[i]; akt_sum+=ile[i]; } ans=max(ans,akt_sum); cout<<ans; } |
English