Cod sursa(job #3303110)

Utilizator tedicTheodor Ciobanu tedic Data 13 iulie 2025 21:12:08
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

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