Pagini recente » Cod sursa (job #860830) | Cod sursa (job #490288) | Cod sursa (job #1110005) | Cod sursa (job #2336367) | Cod sursa (job #694171)
Cod sursa(job #694171)
#include<cstdio>
#include<bitset>
#include<vector>
using namespace std;
int n,m,x,y,c,i,X,Y,sol;
vector<pair<int,int> > V[30010];
bitset<30010> viz;
void read(),solve(),dfs(int,int);
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&X,&Y);
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&c);
V[x].push_back(make_pair(y,c));
V[y].push_back(make_pair(x,-c));
}
}
void solve()
{
dfs(X,0);
printf("%d\n",sol);
}
void dfs(int x,int dist)
{
viz[x]=1;
if(x==Y){sol=dist;return;}
for(vector<pair<int,int> >::iterator it=V[x].begin();it!=V[x].end();it++)
{
y=it->first;
c=it->second;
if(viz[y]==0)
dfs(y,dist+c);
}
}