Pagini recente » Cod sursa (job #2895006) | Cod sursa (job #1678143) | Cod sursa (job #1974581) | Cod sursa (job #1756229) | Cod sursa (job #1064587)
#include<cstdio>
#include<bitset>
#include<vector>
using namespace std;
const int NMAX = 30001;
int N,M,X,Y;
vector<pair<int,int> > V[NMAX];
bool viz[NMAX];
int D[NMAX];
void DFS(int x)
{
vector<pair<int,int> >::iterator it;
viz[x]=1;
for(it=V[x].begin();it!=V[x].end();it++)
{
if(viz[it->first]) continue;
if(x < it->first) D[it->first]=D[x] + it->second;
else D[it->first]=D[x] - it->second;
if(D[Y]) return;
DFS(it->first);
}
}
int main()
{
int a,b,c;
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&N,&M,&X,&Y);
for(;M;--M)
{
scanf("%d%d%d",&a,&b,&c);
V[a].push_back(make_pair(b,c));
V[b].push_back(make_pair(a,c));
}
DFS(X);
printf("%d\n",D[Y]);
return 0;
}