Cod sursa(job #3300120)

Utilizator Tudor_CCTudor Cocu Tudor_CC Data 12 iunie 2025 21:33:48
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <bits/stdc++.h>

using namespace std;

int f[100005];

vector <int> s[100055];

vector <int> d[100055];

deque <int> q;

int main()
{
    ifstream cin("sate.in");
    ofstream cout("sate.out");
    int n,m,x,y,k,aa,bb,a,b;
    cin>>n>>m>>aa>>bb;
    a=min(aa,bb);
    b=max(aa,bb);
    for(int i=1;i<=m;++i)
    {
        cin>>x>>y>>k;
        s[x].push_back(y);
        d[x].push_back(k);
        s[y].push_back(x);
        d[y].push_back(k);
    }

    for(int i=1;i<=n;++i)
    {
        f[i]=INT_MAX;
    }
            f[a]=0;
            q.push_back(a);
            while(q.size())
            {
                for(int i=0;i<s[q.front()].size();++i)
                {
                    int v=s[q.front()][i];
                    if(f[v]==INT_MAX)
                    {
                        f[v]=f[q.front()]+1;
                        if(v>q.front())
                        {
                            f[v]=f[q.front()]+d[q.front()][i];
                        }
                        else
                        {
                            f[v]=f[q.front()]-d[q.front()][i];
                        }
                        q.push_back(v);
                    }
                }
                q.pop_front();
            }


cout<<f[b];

    return 0;
}