Cod sursa(job #2967977)

Utilizator ana_valeriaAna Valeria Duguleanu ana_valeria Data 20 ianuarie 2023 15:27:07
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("sate.in");
ofstream cout ("sate.out");
int viz[30010],coada[30010];
vector <pair <int,int>> lista[30010];
void bfs(int nod)
{
    int inc,sf,i;
    viz[nod]=1;
    coada[1]=nod;
    inc=1;
    sf=1;
    while (inc<=sf)
    {
        for (i=0; i<lista[coada[inc]].size(); i++)
            if (viz[lista[coada[inc]][i].first]==0)
            {
                sf++;
                coada[sf]=lista[coada[inc]][i].first;
                viz[lista[coada[inc]][i].first]=viz[coada[inc]]+lista[coada[inc]][i].second;
            }
        inc++;
    }
}
int main()
{
    int n,m,nod1,nod2,x,y,z,i,rez;
    cin>>n>>m>>nod1>>nod2;
    for (i=1; i<=m; i++)
    {
        cin>>x>>y>>z;
        lista[x].push_back({y,z});
        lista[y].push_back({x,0-z});
    }
    bfs(nod1);
    rez=viz[nod2]-1;
    if (rez<0)
        cout<<0-rez;
    else
        cout<<rez;
    return 0;
}