Advertisement
Josif_tepe

Untitled

Nov 14th, 2022
801
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6.  
  7. int main()
  8. {
  9.     int n, m, q;
  10.    
  11.     cin>>n>>m>>q;
  12.    
  13.     long long a, b, c;
  14.    
  15.     long long shortestpath[n][n];
  16.    
  17.     for(int i=0; i<n; i++){
  18.         for(int j=0; j<n; j++){
  19.             shortestpath[i][j]=1e18;
  20.         }
  21.         shortestpath[i][i] = 0;
  22.     }
  23.  
  24.     for(int j=0; j<m; j++){
  25.     cin>>a>>b>>c;
  26.         a--;
  27.         b--;
  28.     shortestpath[a][b]=min(shortestpath[a][b], c);
  29.         shortestpath[b][a] = min(shortestpath[a][b], c);
  30.     }
  31.  
  32.  
  33.     for(int k=0; k<n; k++){
  34.     for(int i=0; i<n; i++){
  35.         for(int j=0; j<n; j++){
  36.                if((shortestpath[j][k]!=1e18)and(shortestpath[i][k]!=1e18))
  37.                 if((i!=k)and(j!=k) and i != j and(shortestpath[i][k]+shortestpath[j][k]<shortestpath[i][j])){
  38.                     shortestpath[i][j]=shortestpath[i][k]+shortestpath[j][k];
  39.                 }
  40.             }
  41.         }
  42.     }
  43.  
  44.         for(int j=0; j<q; j++){
  45.             int a,b;
  46.             cin>>a>>b;
  47.             a--; b--;
  48.             if(shortestpath[a][b] == 1e18) {
  49.                 cout << -1 << endl;
  50.             }
  51.       else  cout<<shortestpath[a][b]<<" "<<endl;
  52.         }
  53.  
  54.  
  55.     return 0;
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement