#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(NULL);
vector<vector<long long>> osoby, rozklad;
int k, n, x, m, wyn=0;
cin >> k>>n;
long long os=0;
rozklad.push_back({});
osoby.push_back({});
m=n;
for (int i=0;i<n;i++)
{
osoby[0].push_back(0);
rozklad[0].push_back(1);
}
for (int i=1;i<k;i++)
{
cin >> n;
rozklad.push_back({});
osoby.push_back({});
for (int j=0;j<n;j++)
{
cin >> x;
rozklad[i].push_back(x);
osoby[i].push_back(1);
}
m=max(n, m);
}
x=0;
int co[m]={};
for (int i=k-1;i>-1;i--)
{
x=0;
for(int j=0;j<rozklad[i].size();j++)
{
osoby[i][j]=max(1, co[j]);
x+=osoby[i][j];
co[j]=0;
}
wyn=max(wyn, x);
for (int j=0;j<rozklad[i].size();j++)
{
if (rozklad[i][j]!=0)
{
co[rozklad[i][j]-1]+=osoby[i][j];
}
}
}
cout << wyn;
}
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 | #include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { std::ios::sync_with_stdio(false); cin.tie(NULL); vector<vector<long long>> osoby, rozklad; int k, n, x, m, wyn=0; cin >> k>>n; long long os=0; rozklad.push_back({}); osoby.push_back({}); m=n; for (int i=0;i<n;i++) { osoby[0].push_back(0); rozklad[0].push_back(1); } for (int i=1;i<k;i++) { cin >> n; rozklad.push_back({}); osoby.push_back({}); for (int j=0;j<n;j++) { cin >> x; rozklad[i].push_back(x); osoby[i].push_back(1); } m=max(n, m); } x=0; int co[m]={}; for (int i=k-1;i>-1;i--) { x=0; for(int j=0;j<rozklad[i].size();j++) { osoby[i][j]=max(1, co[j]); x+=osoby[i][j]; co[j]=0; } wyn=max(wyn, x); for (int j=0;j<rozklad[i].size();j++) { if (rozklad[i][j]!=0) { co[rozklad[i][j]-1]+=osoby[i][j]; } } } cout << wyn; } |
English