Pagini recente » Cod sursa (job #972528) | Cod sursa (job #3167779) | Cod sursa (job #1462234) | Cod sursa (job #984484) | Cod sursa (job #2472598)
//#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int Max=30005;
bool viz[Max];
int dist[Max],n,m,x,y;
vector <pair <int,int> >v[Max];
queue <int>q;
ifstream in("sate.in");
ofstream out("sate.out");
void citire()
{
in>>n>>m>>x>>y;
for(int i=1;i<=m;i++)
{
int h,k,q; in>>h>>k>>q;
v[h].push_back({k,q});
v[k].push_back({h,q});
}
}
void bfs(int nod)
{
q.push(nod); viz[nod]=1;
while(!q.empty())
{
int nod=q.front(); q.pop();
for(int j=0;j<v[nod].size();j++)
{
int vecin=v[nod][j].first;
int cost=v[nod][j].second;
if(!viz[vecin])
{
viz[vecin]=1; q.push(vecin);
if(vecin>nod)
dist[vecin]=dist[nod]+cost;
else
dist[vecin]=dist[nod]-cost;
}
}
}
}
int main()
{
citire();
bfs(x);
out<<dist[y];
return 0;
}