Mai intai trebuie sa te autentifici.

Cod sursa(job #3372971)

Utilizator teosimSimzianu Teodora teosim Data 5 noiembrie 2026 18:31:43
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cmath>

using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");

struct Muchie {
    int nodDestinatie;
    int dist;
};

vector<Muchie> graf[30001];
int viz[30001];
int poz[30001];

int main()
{
    int n,m,startX,finalY;
    fin>>n>>m>>startX>>finalY;

    for (int i=1;i<=m;i++)
    {
        int u,v,d;
        fin>>u>>v>>d;
        graf[u].push_back({v,d});
        graf[v].push_back({u,-d});
    }
    queue<int> coada;
    coada.push(startX);
    viz[startX]=1;
    poz[startX]=0;

    while (!coada.empty())
    {
        int nodCurent=coada.front();
        coada.pop();

        if (nodCurent==finalY)
        {
            fout<<abs(poz[finalY])<<"\n";
            return 0;
        }
        for(int i=0;i<graf[nodCurent].size();i++)
        {
            int vecin=graf[nodCurent][i].nodDestinatie;
            int costMuchie = graf[nodCurent][i].dist;

            if (viz[vecin]==0)
            {
                viz[vecin]=1;
                poz[vecin]=poz[nodCurent]+costMuchie;
                coada.push(vecin);
            }
        }
    }

    return 0;
}