Naxocist

Ordered Salesman [Crack n Code]

May 15th, 2022
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define INF 2e18
  5.  
  6. using tiii = tuple<int, int, int>;
  7. using ll = long long;
  8.  
  9. const int N = 405;
  10. ll dist[N][N];
  11.  
  12.  
  13. int main(){
  14.     int n, m; scanf("%d%d", &n, &m);
  15.  
  16.     for(int i=1; i<=n; ++i){
  17.         for(int j=1; j<=n; ++j) dist[i][j] = INF;
  18.         dist[i][i] = 0;
  19.     }
  20.  
  21.     int u, v, w;
  22.     for(int i=0; i<m; ++i){
  23.         scanf("%d%d%d", &u, &v, &w);
  24.         if(w < dist[u][v]){
  25.             dist[u][v] = dist[v][u] = w;
  26.         }
  27.     }
  28.  
  29.  
  30.     for(int k=1; k<=n; ++k){
  31.         for(int i=1; i<=n; ++i){
  32.             for(int j=1; j<=n; ++j){
  33.                 if(dist[i][k] + dist[k][j] < dist[i][j]){
  34.                     dist[i][j] = dist[i][k] + dist[k][j];
  35.                 }
  36.             }
  37.         }
  38.     }
  39.  
  40.     ll s = 0;
  41.     for(int i=1; i<n; ++i){
  42.         s += dist[i][i+1];
  43.     }
  44.     printf("%lld", s);
  45.     return 0;
  46. }
  47.  
Advertisement
Add Comment
Please, Sign In to add comment