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 } 21 22 return res + informTime[headID]; 23 } 24 };