Advertisement
a53

DrumuriMinime

a53
May 15th, 2022
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream fin("dmin2.in");
  5. ofstream fout("dmin2.out");
  6. int n, k, m, a[101][101], viz[101], dist[101], D[101][101];
  7. void bf(int vp)
  8. {
  9. int c[100], st, dr;
  10. st=dr=1;
  11. c[1]=vp;
  12. viz[vp]=1;
  13. dist[vp]=0;
  14. while(st<=dr)
  15. {
  16. for(int i=1; i<=n; i++)
  17. if(a[c[st]][i]==1 && !viz[i])
  18. {
  19. dr++;
  20. c[dr]=i;
  21. viz[i]=1;
  22. dist[c[dr]]=dist[c[st]]+1;
  23. }
  24. st++;
  25. }
  26. for(int i=1; i<=dr; i++)
  27. D[vp][c[i]]=dist[c[i]];
  28. }
  29.  
  30. int main()
  31. {
  32. int x, y;
  33. fin>>n>>m;
  34. for(int i=1; i<=m; ++i)
  35. {
  36. fin>>x>>y;
  37. a[x][y]=1;
  38. }
  39. for(int i=1; i<=n; i++)
  40. for(int j=1; j<=n; j++)
  41. if(i!=j)
  42. D[i][j]=-1;
  43. for(int i=1; i<=n; i++)
  44. {
  45. bf(i);
  46. for(int j=1; j<=n; j++)
  47. viz[j]=0;
  48. }
  49. fin>>k;
  50. for(int i=1; i<=k; ++i)
  51. {
  52. fin>>x>>y;
  53. fout<<D[x][y]<<'\n';
  54. }
  55.  
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement