Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int g[108][108];
  6. int n, m;
  7. int used[108];
  8. int dest[107];
  9.  
  10. int main()
  11. {
  12.     int i, v1, v2, len;
  13.     for (i = 0; i < n; i++)
  14.     {
  15.         int j;
  16.         used[i] = 0;
  17.         dest[i] = 10000000;
  18.         for (j = 0; j < n; j++)
  19.             g[i][j] = -1;
  20.     }
  21.     scanf("%d%d", &n, &m);
  22.     for (i = 0; i < m; i++)
  23.     {
  24.         scanf("%d%d%d", &v1, &v2, &len);
  25.         g[v1][v2] = g[v2][v1] = len;
  26.     }
  27.  
  28.     int start;
  29.     scanf("%d", &start);
  30.     dest[start] = 0;
  31.     int c, u;
  32.     for (c = 0; c < (n - 1); c++)
  33.     {
  34.         int min = 10000000;
  35.         for (i = 0; i < n; i++)
  36.         {
  37.             if (used[i] == 0 && dest[i] <= min)
  38.             {
  39.             min = dest[i];
  40.             u = i;
  41.             }
  42.         }
  43.         used[u] = 1;
  44.         for (i = 0; i < n; i++)
  45.         {
  46.             if (used[i] == 0 && g[u][i] != -1 && dest[u] + g[u][i] < dest[i])
  47.             {
  48.                 dest[i] = dest[u] + g[u][i];
  49.             }
  50.         }
  51.     }
  52.  
  53.     for (i = 0; i < n; i++)
  54.     {
  55.         printf("%d ", dest[i]);
  56.     }
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement