#include <iostream>
#include <vector>
using namespace std;
int main()
{
int days, minEmployees = 0;
cin >> days >> minEmployees;
vector<vector<pair<int, int>>> meetings;
meetings.push_back(vector<pair<int, int>>(minEmployees, pair<int, int>(0, 0)));
for (int i = 0; i < days - 1; i++)
{
int meetCount = 0;
cin >> meetCount;
vector<pair<int, int>> order(meetCount);
for (int j = 0; j < meetCount; j++)
{
int temp;
cin >> temp;
order[j] = pair<int, int>(temp, 0);
}
meetings.push_back(order);
}
int n = meetings.size();
while (n > 0)
{
--n;
int sum = 0;
for (int j = 0; j < meetings[n].size(); j++)
{
int index = meetings[n][j].first - 1;
int employees = meetings[n][j].second;
if (employees == 0) employees = 1;
if (index >= 0)
{
meetings[n - 1][index].second += employees;
}
sum += employees;
}
if (sum > minEmployees)
{
minEmployees = sum;
}
}
cout << minEmployees;
}
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 56 57 | #include <iostream> #include <vector> using namespace std; int main() { int days, minEmployees = 0; cin >> days >> minEmployees; vector<vector<pair<int, int>>> meetings; meetings.push_back(vector<pair<int, int>>(minEmployees, pair<int, int>(0, 0))); for (int i = 0; i < days - 1; i++) { int meetCount = 0; cin >> meetCount; vector<pair<int, int>> order(meetCount); for (int j = 0; j < meetCount; j++) { int temp; cin >> temp; order[j] = pair<int, int>(temp, 0); } meetings.push_back(order); } int n = meetings.size(); while (n > 0) { --n; int sum = 0; for (int j = 0; j < meetings[n].size(); j++) { int index = meetings[n][j].first - 1; int employees = meetings[n][j].second; if (employees == 0) employees = 1; if (index >= 0) { meetings[n - 1][index].second += employees; } sum += employees; } if (sum > minEmployees) { minEmployees = sum; } } cout << minEmployees; } |
English