Pagini recente » Cod sursa (job #1461460) | Cod sursa (job #1113330) | Cod sursa (job #447678) | Cod sursa (job #1117089) | Cod sursa (job #2189793)
#include <bits/stdc++.h>
using namespace std;
//ifstream in("sate.in");
//ofstream out("sate.out");
int n,m,i,j,x,y,a,b,c;
vector <int> v[30010];
vector <int> d[30010];
bool viz[30010];
int dis[30010];
int main()
{
ifstream cin("sate.in");
ofstream cout("sate.out");
cin>>n>>m>>x>>y;
for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
v[a].push_back(b);
v[b].push_back(a);
d[a].push_back(c);
d[b].push_back(c);
}
queue <int> q;
viz[1]=1;
dis[1]=0;
q.push(1);
while(!q.empty())
{
int c=q.front();
q.pop();
viz[c]=1;
for(int i=0;i<v[c].size();i++)
{
if(!viz[v[c][i]])
{
viz[v[c][i]]=1;
if(v[c][i]>c) dis[v[c][i]]=dis[c]+d[c][i];
if(v[c][i]<c) dis[v[c][i]]=dis[c]-d[c][i];
q.push(v[c][i]);
}
}
}
cout<<dis[y]-dis[x];
return 0;
}