in_chainz

Untitled

Dec 11th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. const int MAXN = 1024;
  5. const int MAXLEN = 1000;
  6. int g[MAXN][MAXN];
  7. int used[MAXN];
  8.  
  9. int min(int a, int b) {
  10.     if (a <= b)
  11.         return a;
  12.     return b;
  13. }
  14.  
  15. int main() {
  16.     int n, m;
  17.     scanf("%d %d", &n, &m);
  18.  
  19.  
  20.     for (int i = 0; i < n; ++i) {
  21.         int a, b, k;
  22.         scanf("%d %d %d", &a, &b, &k);
  23.         g[a][b] = k;
  24.         g[b][a] = k;
  25.     }
  26.     int mine[MAXN];
  27.     for (int i = 0; i < n; ++i) {
  28.         mine[i] = MAXLEN;
  29.         used[i] = 0;
  30.     }
  31.  
  32.     int ans = 0;
  33.     mine[0] = 0;
  34.     for (int i = 0; i < n; ++i)
  35.     {
  36.         int min_dist = MAXLEN, u;
  37.         for (int j = 0; j < n; ++j)
  38.             if (!used[j] && mine[j] < min_dist)
  39.             {
  40.                 min_dist = mine[j];
  41.                 u = j;
  42.             }
  43.         ans += min_dist;
  44.         used[u] = 1;
  45.         for (int v = 0; v < n; ++v)
  46.             if (g[u][v])
  47.                 mine[v] = min(mine[v], g[u][v]);
  48.     }
  49.  
  50.     printf("%d", ans);
  51.  
  52.     return 0;
  53. }
  54. /*
  55. 5 5
  56. 0 1 5
  57. 0 2 10
  58. 1 3 4
  59. 1 4 10
  60. 2 4 6
  61.  */
Advertisement
Add Comment
Please, Sign In to add comment