Advertisement
Korotkodul

форд белман

Feb 21st, 2022
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <queue>
  5. #include <algorithm>
  6. #include <string>
  7. #include <stack>
  8. #include <set>
  9. #include <map>
  10. #define pii pair <int,int>
  11. #define vec vector
  12. using namespace std;
  13. using ll = long long;
  14. using ld = long double;
  15. using db = double;
  16. void cv(vector <int> &v){
  17. for (auto x: v) cout<<x<<' ';
  18. cout<<"\n";
  19. }
  20.  
  21. void cvl(vector <ll> &v){
  22. for (auto x: v) cout<<x<<' ';
  23. cout<<"\n";
  24. }
  25.  
  26.  
  27. void cvv(vector <vector <int> > &v){
  28. for (auto x: v) cv(x);
  29. cout<<"\n";
  30. }
  31.  
  32. void cvb(vector <bool> v){
  33. for (bool x: v) cout<<x<<' ';
  34. cout<<"\n";
  35. }
  36.  
  37. struct ed{
  38. int fr, to, w;
  39. };
  40.  
  41. vector <ed> G;
  42. vector <int> d;
  43. int n,m;
  44. const int inf = 2e9;
  45.  
  46. int main()
  47. {
  48. ios::sync_with_stdio(0);
  49. cin.tie(0);
  50. cout.tie(0);
  51. cin>>n>>m;
  52. G.resize(m);
  53. d.assign(n, inf);
  54. for (int i = 0; i < m;++i){
  55. cin>>G[i].fr>>G[i].to>>G[i].w;
  56. }
  57. bool ch = 1;
  58. d[0] = 0;
  59. while (ch){
  60. ch = 0;
  61. for (int i = 0; i < m;++i){
  62. if (d[G[i].fr] == inf) continue;
  63. if (d[G[i].to] > d[G[i].fr] + G[i].w){
  64. ch = 1;
  65. d[G[i].to] = d[G[i].fr] + G[i].w;
  66. }
  67. }
  68. }
  69. cv(d);
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement