#include<bits/stdc++.h>
using namespace std;
int main()
{
int k,n;
cin >> k >> n;
vector<pair<int,int>>konferencje[k];
for (int i=1; i<=n; ++i)
konferencje[0].push_back(make_pair(0,0));
for (int i=1; i<k; ++i)
{
int l,a;
cin >> l;
for (int j=0; j<l; ++j)
{
cin >> a;
konferencje[i].push_back(make_pair(a,0));
}
}
for (int i=k-1; i>=0; --i)
{
for (int j=0; j<konferencje[i].size(); ++j)
{
konferencje[i][j].second=max(konferencje[i][j].second,1);
if (konferencje[i][j].first!=0)
konferencje[i-1][konferencje[i][j].first-1].second+=konferencje[i][j].second;
}
}
int wynik=0;
for (int i=0; i<k; ++i)
{
int pom_wynik=0;
for (int j=0; j<konferencje[i].size(); ++j)
pom_wynik+=konferencje[i][j].second;
wynik=max(wynik,pom_wynik);
}
cout << wynik;
}
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 | #include<bits/stdc++.h> using namespace std; int main() { int k,n; cin >> k >> n; vector<pair<int,int>>konferencje[k]; for (int i=1; i<=n; ++i) konferencje[0].push_back(make_pair(0,0)); for (int i=1; i<k; ++i) { int l,a; cin >> l; for (int j=0; j<l; ++j) { cin >> a; konferencje[i].push_back(make_pair(a,0)); } } for (int i=k-1; i>=0; --i) { for (int j=0; j<konferencje[i].size(); ++j) { konferencje[i][j].second=max(konferencje[i][j].second,1); if (konferencje[i][j].first!=0) konferencje[i-1][konferencje[i][j].first-1].second+=konferencje[i][j].second; } } int wynik=0; for (int i=0; i<k; ++i) { int pom_wynik=0; for (int j=0; j<konferencje[i].size(); ++j) pom_wynik+=konferencje[i][j].second; wynik=max(wynik,pom_wynik); } cout << wynik; } |
English