Cod sursa(job #3303005)

Utilizator horatiu.avramAvram Popa Cristian Horatiu horatiu.avram Data 12 iulie 2025 16:16:39
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<bits/stdc++.h>
using namespace std;
#define MAX_N (int)3e4
#define INF (int)2e9
ifstream fin("sate.in");
ofstream fout("sate.out");
typedef struct {
    int adj;
    int dist;
} node;
vector<node>g[MAX_N+1];
int num_nodes,num_edges,node_1,node_2;
int dist[MAX_N+1];
void init_dist() {
    for(int a=0; a<=num_nodes; a++) {
        dist[a]=INF;
    }
}
void bfs(int pos) {
    init_dist();
    queue<int>q;
    dist[pos]=0;
    q.push(pos);
    while(!q.empty()) {
        pos=q.front();
        q.pop();
        for (auto it:g[pos]) {
            int next_pos=it.adj;
            int dist_between=it.dist;
            if(dist[pos]+dist_between<dist[next_pos]) {
                dist[next_pos]=dist[pos]+dist_between;
                q.push(next_pos);
            }
        }
    }
}
int main() {
    fin>>num_nodes>>num_edges>>node_1>>node_2;
    while(num_edges--) {
        int v,u,w;
        fin>>v>>u>>w;
        g[v].push_back({u,w});
        g[u].push_back({v,-w});
    }
    bfs(node_1);
    fout<<dist[node_2];
    return 0;
}