Advertisement
yuawn

algo2017_week6_networkingrouting

Nov 13th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define fo(n) for(int i=0;i<n;i++)
  5. #define MAX 300
  6.  
  7. int d[MAX][MAX] , n , v , t , node[MAX];
  8.  
  9.  
  10. void floyd_warshall(){
  11.     fo( n )
  12.         for( int j = 0 ; j < n ; ++j )
  13.             for( int k = 0 ; k < n ; ++k )
  14.                 d[i][j] = d[i][j] > d[i][k] + d[k][j] ? d[i][k] + d[k][j] : d[i][j];
  15. }
  16.  
  17.  
  18. int main(){
  19.    
  20.     cin >> n >> v >> t;
  21.    
  22.     fo(MAX)
  23.         for(int j = 0 ; j < MAX ; j ++) d[i][j] = 1e7;
  24.    
  25.     fo( n ) cin >> node[i];
  26.     fo( v ){
  27.         int a , b , l;
  28.         cin >> a >> b >> l;
  29.         a-- , b--;
  30.         d[a][b] = l + node[b];
  31.         d[b][a] = l + node[a];
  32.     }
  33.    
  34.     floyd_warshall();
  35.    
  36.     fo( t ){
  37.         int a , b;
  38.         cin >> a >> b;
  39.         a-- , b--;
  40.         cout << d[a][b] + node[a] << endl;
  41.     }
  42.    
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement