Cod sursa(job #3310116)

Utilizator LucaMirsolea14Luca Mirsolea LucaMirsolea14 Data 11 septembrie 2025 18:46:37
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<bits/stdc++.h>
#define pii pair<int,int>
#define inf 1e9
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");

const int N = 30002;

vector<pii> g[N];
int dist[N], n;

void Dijkstra(int u){

    for(int i=1;i<=n;i++)
        dist[i] = inf;

    priority_queue<pii, vector<pii>, greater<pii>> pq;
    int nod;
    pq.push({0,u});
    dist[u] = 0;
    while(!pq.empty()){
        nod = pq.top().second;
        pq.pop();
        for(auto e : g[nod]){
            if(dist[e.first] > dist[nod] + e.second){
                dist[e.first] = dist[nod] + e.second;
                pq.push({e.second, e.first});
            }
        }
    }
}

int main(){
    int m, x, y, i, j, c, l, r;
    fin>>n>>m>>x>>y;

    for(i=1;i<=m;i++){
        fin>>l>>r>>c;
        g[l].push_back({r, c});
        g[r].push_back({l, -c});
    }
    Dijkstra(x);
    //for(i=1;i<=n;i++)
    //    fout<<dist[i]<<" ";
    fout<<endl;
    fout<<dist[y];
}