MAGCARI

BF

Aug 23rd, 2022
815
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. /*
  2.     Task        : Bellman Ford
  3.     Author      : Phumipat C. [MAGCARI]
  4.     Language    : C++
  5. */
  6. #include<bits/stdc++.h>
  7. using namespace std;
  8. struct A{
  9.     int u,v,w;
  10. };
  11. A edges[100010];
  12. int dis[100010];
  13. int main(){
  14.     int n,m;
  15.     scanf("%d %d",&n,&m);
  16.     for(int i=1;i<=m;i++)
  17.         scanf("%d %d %d",&edges[i].u,&edges[i].v,&edges[i].w);
  18.     for(int i=1;i<=n;i++)
  19.         dis[i] = 1e9;
  20.     dis[1] = 0;
  21.     for(int i=1;i<n;i++)
  22.         for(int j=1;j<=m;j++)
  23.             dis[edges[i].v] = min(dis[edges[i].v],dis[edges[i].u] + edges[i].w);
  24.     for(int i=1;i<=m;i++){
  25.         if(dis[edges[i].u] + edges[i].w < dis[edges[i].v]){
  26.             printf("Negative Weight Cycle Detected!\n");
  27.             return 0;
  28.         }
  29.     }
  30.     for(int i=1;i<=n;i++)
  31.         printf("Distance from 1 to %d is %d\n",i,dis[i]);
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment