Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. /***from dust i have come, dust i will be***/
  4.  
  5. #include<algorithm>
  6. #include<cmath>
  7. #include<cstdio>
  8. #include<cstdlib>
  9. #include<cstring>
  10. #include<functional>
  11. #include<iomanip>
  12. #include<iostream>
  13. #include<map>
  14. #include<numeric>
  15. #include<queue>
  16. #include<set>
  17. #include<stack>
  18. #include<string>
  19. #include<utility>
  20. #include<vector>
  21.  
  22. typedef long long int ll;
  23. typedef unsigned long long int ull;
  24.  
  25. #define dbg printf("in\n")
  26. #define nl printf("\n");
  27. #define N 1050
  28. #define inf 1000000000
  29. #define pp pair<int,int>
  30.  
  31. #define sf(n) scanf("%d", &n)
  32. #define sff(n,m) scanf("%d%d",&n,&m)
  33. #define sfl(n) scanf("%I64d", &n)
  34. #define sffl(n,m) scanf("%I64d%I64d",&n,&m)
  35.  
  36. #define pf(n) printf("%d ",n)
  37. #define pfl(n) printf("%I64d ",n)
  38. #define pfs(s) printf("%s\n",s)
  39.  
  40. #define pb(n) push_back(n)
  41.  
  42. using namespace std;
  43.  
  44. int dist[N][N];
  45. bool rasta[N][N];
  46.  
  47. int main()
  48. {
  49.     freopen("in.txt", "r", stdin);
  50.  
  51.     int i,j,k;
  52.     int n,m;
  53.     int s,t,x,y;
  54.     int u,v;
  55.  
  56.     for(i=0; i<N; i++)
  57.     {
  58.         for(j=0; j<N; j++)
  59.         {
  60.             dist[i][j]=inf;
  61.             rasta[i][j]=0;
  62.  
  63.             if(i==j)
  64.                 dist[i][j]=0;
  65.         }
  66.     }
  67.  
  68.     scanf("%d%d%d%d",&n,&m,&s,&t);
  69.     for(i=0; i<m; i++)
  70.     {
  71.         sf(u);
  72.         sf(v);
  73.  
  74.         dist[u][v]=1;
  75.         dist[v][u]=1;
  76.  
  77.         rasta[u][v]=1;
  78.         rasta[v][u]=1;
  79.     }
  80.  
  81.     //Floyd-Warshall
  82.     for (k = 1; k <= n; k++)
  83.     {
  84.         for (i = 1; i <= n; i++)
  85.         {
  86.             for (j = 1; j <= n; j++)
  87.             {
  88.                 if (dist[i][j] > dist[i][k] + dist[k][j])
  89.                     dist[i][j] = dist[i][k] + dist[k][j];
  90.             }
  91.         }
  92.     }
  93.  
  94.     int cnt=0;//cout<<dist[s][t];nl
  95.     for(i=1; i<=n; i++)
  96.     {
  97.         for(j=i+1; j<=n; j++)
  98.         {
  99.             if(!rasta[i][j])
  100.             {
  101.                 //cout<<i<<" "<<j;nl
  102.                 x=dist[s][i]+1+dist[j][t];
  103.                 if(x>=dist[s][t])
  104.                     cnt++;
  105.             }
  106.         }
  107.     }
  108.  
  109.     pf(cnt);
  110.  
  111.     return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement