Cod sursa(job #3373014)

Utilizator Stefan08Nechifor Stefan Stefan08 Data 5 noiembrie 2026 21:15:25
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>
#include <map>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int MAXN =30005;
int distanta[MAXN];
bool vizitat[MAXN];
int main()
{
    int n,m,x,y;
    vector<pair<int, int>> graf[MAXN];
    //n-sate
    //m-drumuri cunoscute
    //afla dist(x,y) -- daca se poate
    fin>>n>>m>>x>>y;
    int i,j,d;
    while(m){
        fin>>i>>j>>d;
        graf[i].push_back({j, d});
        graf[j].push_back({i,-d});
        m--;
    }
    queue<int> q;
    q.push(x);
    vizitat[x] = true;
    distanta[x] = 0;
    while (!q.empty()){
        int nod = q.front();
        q.pop();
        if (nod == y){
            break;
        }
        for (const auto& muchie : graf[nod]){
        int vecin = muchie.first;
        int cost = muchie.second;

            if (!vizitat[vecin]) {
                vizitat[vecin] = true;
                distanta[vecin] = distanta[nod] + cost;
                q.push(vecin);
            }
        }
    }
    
    fout<< distanta[y];
    return 0;
}