Pagini recente » Cod sursa (job #1152503) | Cod sursa (job #1716738) | Cod sursa (job #1561240) | Cod sursa (job #1229463) | Cod sursa (job #1071666)
#include<stdio.h>
#include<vector>
using namespace std;
#define nmax 30005
struct element{long n, c;};
long n, m, x, y, a, b, c, i;
element el;
vector <element> ma[nmax];
bool viz[nmax];
long dist[nmax];
void citire()
{
scanf("%ld %ld %ld %ld",&n,&m,&x,&y);
for (i=1;i<=m;i++)
{
scanf("%ld %ld %ld",&a,&b,&c);
el.n=b; el.c=c; ma[a].push_back(el);
el.n=a; el.c=-c; ma[b].push_back(el);
}
}
void dfs(long x)
{
viz[x]=1;
vector <element> ::iterator it;
for (it=ma[x].begin();it!=ma[x].end();it++)
if (!viz[(*it).n])
{
dist[(*it).n]=dist[x]+(*it).c;
dfs((*it).n);
}
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
citire();
dfs(x);
printf("%ld",dist[y]);
return 0;
}