Nik_Perepelov

Форд-Беллман for БИВТ-20-1

Oct 12th, 2021
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. #include <iostream>
  2. #include <limits.h>
  3.  
  4. using namespace std;
  5.  
  6. void fordBellman(int graph[][3], int n, int m, int s) {
  7.     int dist[n];
  8.     for (int i = 0; i < n; i++) {
  9.         dist[i] = INT_MAX;
  10.     }
  11.     dist[s] = 0;
  12.     for (int i = 0; i < n - 1; i++) {
  13.         for (int j = 0; j < m; j++) {
  14.             if (dist[graph[j][0]] != INT_MAX && dist[graph[j][0]] + graph[j][2] < dist[graph[j][1]]) {
  15.                 dist[graph[j][1]] = dist[graph[j][0]] + graph[j][2];
  16.             }
  17.         }
  18.     }
  19.     for (int i = 0; i < n; i++)
  20.         cout << i << ' ' << dist[i] << '\n';
  21. }
  22.  
  23. int main() {
  24.     int n = 6, m = 9;
  25.     int graph[][3] = {{0, 1, 3},
  26.                       {0, 2, 9},
  27.                       {1, 2, 5},
  28.                       {4, 1, -1},
  29.                       {2, 4, 2},
  30.                       {2, 3, 1},
  31.                       {3, 4, 2},
  32.                       {3, 5, 6},
  33.                       {4, 5, 4}};
  34.     fordBellman(graph, n, m, 0);
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment