#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(nullptr); ios_base::sync_with_stdio(false);
int dni, liczba;
cin >> dni >> liczba;
vector<vector<pair<int, int>>> spotkania(dni); // para rodzic, potencjal
spotkania[0] = vector<pair<int, int>>(liczba, {0, 0});
for(int i = 1; i < dni; i++) {
cin >> liczba;
spotkania[i] = vector<pair<int, int>>(liczba, {0, 0});
for(int j = 0; j < liczba; j++) {
cin >> spotkania[i][j].first;
}
}
long long wagaDnia, maxWagaDnia = 0;
for(int i = dni-1; i >= 0; i--) {
wagaDnia = 0;
for(int j = 0; j < spotkania[i].size(); j++) {
if(spotkania[i][j].second == 0) spotkania[i][j].second = 1;
if(spotkania[i][j].first != 0) {
spotkania[i-1][spotkania[i][j].first-1].second += spotkania[i][j].second;
}
wagaDnia += spotkania[i][j].second;
}
if(wagaDnia > maxWagaDnia) maxWagaDnia = wagaDnia;
}
cout << maxWagaDnia << '\n';
}
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 | #include <bits/stdc++.h> using namespace std; int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int dni, liczba; cin >> dni >> liczba; vector<vector<pair<int, int>>> spotkania(dni); // para rodzic, potencjal spotkania[0] = vector<pair<int, int>>(liczba, {0, 0}); for(int i = 1; i < dni; i++) { cin >> liczba; spotkania[i] = vector<pair<int, int>>(liczba, {0, 0}); for(int j = 0; j < liczba; j++) { cin >> spotkania[i][j].first; } } long long wagaDnia, maxWagaDnia = 0; for(int i = dni-1; i >= 0; i--) { wagaDnia = 0; for(int j = 0; j < spotkania[i].size(); j++) { if(spotkania[i][j].second == 0) spotkania[i][j].second = 1; if(spotkania[i][j].first != 0) { spotkania[i-1][spotkania[i][j].first-1].second += spotkania[i][j].second; } wagaDnia += spotkania[i][j].second; } if(wagaDnia > maxWagaDnia) maxWagaDnia = wagaDnia; } cout << maxWagaDnia << '\n'; } |
English