fork download
  1.  
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int src, dst, price = INT_MAX, fsrc, fdst, fprice = INT_MAX;
  6. vector<vector<pair<int,int>>> adj;
  7. vector<bool> visited;
  8.  
  9. void dfs(int i, int sum) {
  10. visited[i] = true;
  11. for (auto x: adj[i]) {
  12. int c = x.first, p = x.second;
  13. if (!visited[c]) {
  14. dfs(c, sum + p);
  15. }
  16. else if (c == src) {
  17. if (price > sum + p) {
  18. price = sum + p;
  19. dst = i;
  20. }
  21. }
  22. }
  23. }
  24. int main () {
  25. int n;
  26. cin >> n;
  27. int flights;
  28. cin >> flights;
  29. adj = vector<vector<pair<int,int>>>(n);
  30.  
  31. for (int i = 0; i < flights; ++i) {
  32. int x,y,z;
  33. cin >> x >> y >> z;
  34. adj[x].push_back({y, z});
  35. }
  36.  
  37. for (int i = 0; i < n; ++i) {
  38. visited = vector<bool>(n, false);
  39. src = i;
  40. dfs(i, 0);
  41. if (price < fprice) {
  42. fsrc = src;
  43. fdst = dst;
  44. fprice = price;
  45. }
  46. }
  47.  
  48. cout << fprice << endl;
  49. cout << fsrc << endl;
  50. cout << fdst << endl;}
  51.  
Success #stdin #stdout 0.01s 5308KB
stdin
4
i love hackerrank
hackerrank is an awesome place for programmers
hackerrank
i think hackerrank is a great place to hangout
stdout
2147483647
0
0