Cod sursa(job #3374524)

Utilizator andrei__pAndrei Puica andrei__p Data 9 noiembrie 2026 01:45:51
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,m,x,y;

int u[100100],v[100100],d[100100];

vector <int> g[100100];

queue <int> q;

bool viz[100100];
int dist[100100];

int main()
{
    fin>>n>>m>>x>>y;
    for(int i=1; i<=m; i++)
    {
        fin>>u[i]>>v[i]>>d[i];
        g[u[i]].push_back(i);
        g[v[i]].push_back(i);
    }

    q.push(x);
    viz[x]=1;

    while(!q.empty())
    {
        int n1=q.front();
        q.pop();

        for(int e:g[n1])
        {
            int n2=u[e]+v[e]-n1;
            if(viz[n2]==0)
            {
                q.push(n2);
                viz[n2]=1;

                if(n2>n1)
                    dist[n2]=dist[n1]+d[e];
                else
                    dist[n2]=dist[n1]-d[e];
            }
        }
    }

    fout<<dist[y]<<"\n";

    return 0;
}