Naxocist

machikadomazoku

Apr 29th, 2023
679
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long int;
  4. const int N = 502;
  5. ll g[N][N];
  6.  
  7. int main() {
  8.  
  9.     int n, m; scanf("%d%d", &n, &m);
  10.  
  11.     for(int i=0; i<n; ++i) {
  12.         for(int j=0; j<n; ++j) {
  13.             if(i == j) continue ;
  14.             g[i][j] = 2e9;
  15.         }
  16.     }
  17.  
  18.     for(int i=0; i<m; ++i) {
  19.         int u, v, w; scanf("%d%d%d", &u, &v, &w);
  20.         g[u][v] = (ll)w;
  21.         g[v][u] = (ll)w;
  22.     }
  23.  
  24.     for(int k=0; k<n; ++k) {
  25.         for(int i=0; i<n; ++i) {
  26.             for(int j=0; j<n; ++j) {
  27.                 g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
  28.             }
  29.         }
  30.     }
  31.  
  32.     ll d; scanf("%lld", &d);
  33.     int a = 0;  
  34.     for(int i=0; i<n; ++i) {
  35.         for(int j=i+1; j<n; ++j) {
  36.             if(g[i][j] <= d) {
  37.                 a ++;
  38.             }
  39.         }
  40.     }
  41.     if(a == 0) {
  42.         printf("0/1");
  43.         return 0;
  44.     }
  45.     n--;
  46.     int b = (n * (n+1))/2;
  47.     int t = __gcd(a, b);
  48.     a /= t; b/= t;
  49.    
  50.     printf("%d/%d", a, b);
  51.     return 0;
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment