Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6.  
  7. #define MAXN 1024
  8. #define MAXM 2000002
  9. #define MIN(a,b) ((a<b)?a:b)
  10.  
  11. int adj[MAXN][MAXN];
  12. int d[MAXN];
  13.  
  14. int main (void)
  15. {
  16.     int n, m, x, y, z, inst = 0;
  17.     long long custo;
  18.  
  19.     while (scanf ("%d %d", &n, &m) == 2)
  20.     {
  21.         custo = 0;
  22.  
  23.         for (int i = 0; i < n; i++)
  24.         {
  25.             for (int j = 0; j < n; j++)
  26.             {
  27.                 adj[i][j] = 0x3f3f3f3f;
  28.             }
  29.         }
  30.  
  31.         for (int i = 0; i < m; i++)
  32.         {
  33.             scanf ("%d %d %d", &x, &y, &z);
  34.             x--; y--;
  35.             adj[x][y] = MIN(z, adj[x][y]);
  36.             adj[y][x] = adj[x][y];
  37.         }
  38.  
  39.         int count = 1;
  40.         for (int i = 0; i < n; i++)
  41.         {
  42.             d[i] = adj[0][i];
  43.         }
  44.         d[0] = 0;
  45.  
  46.         while (count < n)
  47.         {
  48.             int menor = 0x3f3f3f3f, j;
  49.             for (int i = 0; i < n; i++)
  50.             {
  51.                 if (d[i] && d[i] < menor)
  52.                 {
  53.                     j = i;
  54.                     menor = d[i];
  55.                 }
  56.             }
  57.  
  58.             custo += d[j];
  59.             d[j] = 0;
  60.  
  61.             for (int i = 0; i < n; i++)
  62.             {
  63.                 if (adj[j][i] < d[i])
  64.                     d[i] = adj[j][i];
  65.             }
  66.  
  67.             count++;
  68.         }
  69.  
  70.         printf ("Instancia %d\n%lld\n\n", ++inst, custo);
  71.     }
  72.  
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement