Cod sursa(job #3373219)

Utilizator Teodor-CiprianNica Teodor-Ciprian Teodor-Ciprian Data 6 noiembrie 2026 12:52:15
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");

struct Drum
{
    int lungime,cap;
    Drum(int a,int b)
    {
        cap=a;
        lungime=b;
    }
};

void BFS(int start, const vector<vector<Drum>>& graf, vector<int>& pz)
{
    vector<int> Q;
    Q.push_back(start);
    pz[start]=0;

    int i=0;
    while (i<Q.size())
    {
        int nod=Q[i];
        ++i;
        for (auto d:graf[nod])
        {
            if (pz[d.cap]==-1)
            {
                pz[d.cap]=pz[nod]+d.lungime;
                Q.push_back(d.cap);
            }
        }
    }
}

int main()
{
    int N,M,X,Y;
    fin>>N>>M>>X>>Y;;
    vector <vector<Drum>> graf(N+1);
    vector<int> pz(N+1,-1);
    for(int c=0;c<M;c++)
    {
        int i,j,l;
        fin>>i>>j>>l;
        graf[i].push_back(Drum(j, l));
        graf[j].push_back(Drum(i, -l));
    }
    BFS(X, graf, pz);
    fout<<pz[Y];
    return 0;
}