fork(2) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. struct canal {
  6. int x, y, t;
  7. };
  8.  
  9. int main() {
  10. int n, m;
  11. vector <canal> canals;
  12. cin >> n >> m;
  13. canal r;
  14. for (int i=0; i < m; i++)
  15. {
  16. cin >> r.x >> r.y >> r.t;
  17. canals.push_back(r);
  18. }
  19. const int INF = 2000000;
  20. vector <int> distance (n);
  21. int x;
  22. for (int i = 0; i < n; i++) {
  23. x = -1;
  24. for (int j = 0; j < m; j++)
  25. if (distance[canals[j].y] > distance[canals[j].x] + canals[j].t) {
  26. distance[canals[j].y] = max (-INF, distance[canals[j].x] + canals[j].t);
  27. x = canals[j].y;
  28. }
  29. }
  30.  
  31. if (x == -1)
  32. cout << "not possible" << endl;
  33. else {
  34. cout << "possible" << endl;
  35. }
  36. return 0;
  37. }
Success #stdin #stdout 0s 3460KB
stdin
3 3
0 1 -100
1 2 1
2 1 0
stdout
not possible