leetcode

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

3310.cpp (1262B)


0 static const auto _ = [] { 1 ios::sync_with_stdio(0); 2 cin.tie(0); 3 return 0; 4 }(); 5 6 class Solution { 7 public: 8 vector<int> remainingMethods(int n, int k, const vector<vector<int>> &invocations) const { 9 static bool seen[100001]; 10 vector<vector<int>> invoke(n); 11 12 memset(seen, 0x00, sizeof(seen)); 13 for (const auto &in : invocations) { 14 invoke[in[0]].push_back(in[1]); 15 } 16 17 queue<int> q; 18 q.emplace(k); 19 seen[k] = true; 20 while (!q.empty()) { 21 const int root = q.front(); 22 q.pop(); 23 for (const auto next : invoke[root]) { 24 if (seen[next]) continue; 25 seen[next] = true; 26 q.emplace(next); 27 } 28 } 29 30 for (int i = 0; i < n; i++) { 31 if (seen[i]) continue; 32 for (const auto in : invoke[i]) { 33 if (seen[in]) { 34 vector<int> res(n); 35 iota(begin(res), end(res), 0); 36 return res; 37 } 38 } 39 } 40 41 vector<int> res; 42 for (int i = 0; i < n; i++) { 43 if (seen[i]) continue; 44 res.emplace_back(i); 45 } 46 47 return res; 48 } 49 };