Cod sursa(job #3272327)

Utilizator apoputoaievladVlad Cristian Apoputoaie apoputoaievlad Data 29 ianuarie 2025 09:28:24
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <bits/stdc++.h>

using namespace std;

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

/***struct muchie
{
    int x,y,cost;
     bool operator< (muchie m) const
    {
        return x < m.x;
    }
};*/

int n,m,s1,s2,dist[30002];

vector <pair<int,int>> liste[30002];

void Bfs()
{
    int nod,cost;
    queue <pair<int,int>> q;
    dist[s1]=0;
    q.push({s1,0});
    while(!q.empty())
    {
        nod=q.front().first;
        cost=q.front().second;
        q.pop();
        for(auto e:liste[nod])
            if(dist[e.first]==-1)
            if(e.first<nod)
            {
                dist[e.first]=cost-e.second;
                q.push({e.first,dist[e.first]});
            }
            else if(e.first>nod)
            {
                dist[e.first]=cost+e.second;
                q.push({e.first,dist[e.first]});
            }
    }
}


int main()
{
    int i,c,z,t;
    fin>>n>>m>>s1>>s2;
    for(i=1;i<=m;i++)
        {
            fin>>z>>t>>c;
            liste[z].push_back({t,c});
            liste[t].push_back({z,c});
        }
    //cout<<sizeof(b)/1024.0/10244;
    for(i=1;i<=n;i++)
        dist[i]=-1;
    Bfs();
    fout<<dist[s2];
    return 0;
}