leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1376.cpp (791B)


0 class Solution {
1 public:
2 int numOfMinutes(int n, int headID, const vector<int> &manager, const vector<int> &informTime) {
3 vector<int> time(n, -1);
4 time[headID] = 0;
5 int res = 0, crnt, sum1, sum2;
6 for (int i = 0; i < n; i++) {
7 if (informTime[i] != 0) continue;
8 crnt = i, sum1 = 0;
9 while (time[crnt] == -1) {
10 sum1 += informTime[crnt];
11 crnt = manager[crnt];
12 }
13 res = max(res, sum1 += time[crnt]);
14 crnt = i, sum2 = 0;
15 while (time[crnt] == -1) {
16 time[crnt] = sum1 - sum2;
17 sum2 += informTime[crnt];
18 crnt = manager[crnt];
19 }
20 }
22 return res + informTime[headID];
23 }
24 };