Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define Nmax 1505
  3. using namespace std;
  4. ifstream fin ("graph.in");
  5. ofstream fout ("graph.out");
  6. struct muchie
  7. {
  8. int x, c;
  9. };
  10. vector <muchie> v[Nmax];
  11. vector <int> d[Nmax];
  12. int a[Nmax][Nmax], u[Nmax][Nmax], viz[Nmax], n, m, x, y, c;
  13. void dfs(int x)
  14. {
  15. d[x].push_back(x);
  16. a[x][x]=1;
  17. viz[x]=1;
  18. for(int i=0;i<v[x].size();i++)
  19. {
  20. int f = v[x][i].x;
  21. if(!viz[f])
  22. dfs(f);
  23. for(int j=0;j<d[f].size();j++)
  24. {
  25. int n=d[f][j];
  26. if(a[x][n]==0)
  27. {
  28. a[x][n]=1;
  29. d[x].push_back(n);
  30. u[x][n]=u[f][n]+v[x][i].c;
  31. }
  32. else u[x][n]=min(u[x][n], u[f][n]+v[x][i].c);
  33. }
  34. }
  35. }
  36.  
  37. int main()
  38. {
  39. fin >> n >> m;
  40. for(int i=1; i<=m; i++)
  41. {
  42. fin >> x >> y >> c;
  43. v[x].push_back({y, c});
  44. }
  45. for(int i=1;i<=n;i++)
  46. if(!viz[i])
  47. dfs(i);
  48. for(int i=1;i<=n;i++)
  49. {
  50. for(int j=1;j<=n;j++)
  51. {
  52. if(a[i][j])
  53. fout << u[i][j] << ' ';
  54. else fout << "x ";
  55. }
  56. fout << '\n';
  57. }
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement