Shortest path : Bellman Ford - YessineJallouli/Competitive-Programming GitHub Wiki

#include <bits/stdc++.h>
#define ll long long
#define SaveTime ios_base::sync_with_stdio(false), cin.tie(0);
using namespace std;

const int N = 107; // number of nodes
const int M = 1e4+7; // number of edges 
const ll inf = 1e18;

vector<int> pr(N);
vector<ll> d(N);

struct e {
   int a,b,w;
   e() {
      a = b = w = 0;
   }
   e(int _a, int _b, int _w) {
      a = _a;
      b = _b;
      w = _w;
   }
};

vector<e> edge(M);

int n,m;

int main() {
   SaveTime
   cin >> n >> m;
   for (int i = 0; i < m; i++) {
      int a,b,w; cin >> a >> b >> w;
      edge[i] = e(a,b,w);
   }
   d.assign(N, inf);
   pr.assign(N, -1);
   d[1] = 0;
   for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
         int a = edge[j].a, b = edge[j].b, w = edge[j].w;
         if (d[a] < inf && d[a] + w < d[b]) {
            d[b] = d[a] + w;
            pr[b] = a;
         }
      }
   }
   // Check negative cycle
   bool negCycle = false;
   for (int i = 0; i < m; i++) {
      int a = edge[i].a, b = edge[i].b, w = edge[i].w;
      if (d[a] + w < d[b]) {
         negCycle = true;
      }
   }
}

/// Oussama

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define INF 30000
#define pi pair<int,int>
int n,m,s=1,u,v,w;
vector<pair<int,int> > G[101];
int d[101];

int main() {
    ios_base::sync_with_stdio(0);
    cin >> n >> m;
    for(int i=0;i<m;++i){
        cin >> u >> v >> w;
        G[u].push_back({w,v});
    }
    for(int i=1;i<=n;++i){
        if(i==s)
            d[i]=0;
        else
            d[i]=INF;
    }
    priority_queue<pi, vector<pi> , greater<pi> > pq;
    pq.push({0,s});
    while(!pq.empty()){
        int w=pq.top().first,v=pq.top().second;
        pq.pop();
        for(pi p : G[v]){
            if(d[p.second]>d[v]+p.first){
                d[p.second]=d[v]+p.first;
                pq.push({d[p.second],p.second});
            }
        }
    }
    for(int i=1;i<=n;++i) cout << d[i] << ' ';
}

Resources :
https://youtu.be/Pn7rCyqwZbQ

⚠️ **GitHub.com Fallback** ⚠️