Pagini recente » Cod sursa (job #1992251) | Cod sursa (job #1760061) | Cod sursa (job #1787107) | Cod sursa (job #2352043) | Cod sursa (job #3303109)
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int>>vecini[30005];
int distx[30005];
int n,m,x,y,a,b,d;
int 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;
}