Advertisement
Guest User

Untitled

a guest
May 21st, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.01 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. const int inf = 1e9;
  4.  
  5. int main() {
  6.     int n,m,i,j,k;
  7.     FILE*file1 = fopen("pathsg.in","r");
  8.     FILE*file2 = fopen("pathsg.out", "w");
  9.     fscanf(file1,"%d %d", &n, &m);
  10.     int distance[n+1][n+1];
  11.     for (i=1; i <=n; i++){
  12.         for(j=1; j<=n; j++){
  13.             distance[i][j] = inf;
  14.         }
  15.     }
  16.     for(i=1; i<=m; i++){
  17.         int start, finish, weight;
  18.         fscanf(file1,"%d %d %d", &start, &finish, &weight);
  19.         distance[start][finish] = weight;
  20.     }
  21.     for (i=1; i<=n; i++){
  22.         distance[i][i] = 0;
  23.     }
  24.     for(k=1; k<= n; k++)
  25.         for(i=1; i<= n; i++)
  26.             for(j=1; j <=n; j++)
  27.                 if (distance[i][k] != inf && distance[k][j] != inf && distance[i][k] + distance[k][j] < distance[i][j])
  28.                     distance[i][j] = distance[i][k] + distance[k][j];
  29.     for (i=1; i<= n; i++){
  30.         for (j=1; j<= n; j++){
  31.             fprintf(file2, "%d ", distance[i][j]);
  32.         }
  33.         fprintf(file2, "\n");
  34.     }
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement