Cod sursa(job #3300128)

Utilizator tedicTheodor Ciobanu tedic Data 12 iunie 2025 22:00:53
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;
int noduri, muchii, x,y;
vector<pair<int,int>>vecini[30005];
int distx[30005];
queue<int>q;
void bfs(int start)
{
    distx[start]=0;
    q.push(start);
    while(!q.empty())
    {
        int nod=q.front();
        q.pop();
        for(auto i: vecini[nod])
            if(distx[i.first]==30005)
            {
                if(i.first>nod)
                    distx[i.first]=distx[nod]+i.second;
                else
                    distx[i.first]=distx[nod]-i.second;
                q.push({i.first});
            }
    }
}
int main()
{
    ifstream cin("sate.in");
    ofstream cout("sate.out");
    for(int i=1; i<=30000; i++)
        distx[i]=30005;
    cin>>noduri>>muchii>>x>>y;
    int a,b,d;
    for(int i=1; i<=muchii; i++)
    {
        cin>>a>>b>>d;
        vecini[a].push_back({b,d});
        vecini[b].push_back({a,d});
    }
    bfs(x);
    cout<<distx[y];
    return 0;
}