Pagini recente » Cod sursa (job #2614798) | Cod sursa (job #1040999)
#include <cstdio>
#include <vector>
using namespace std;
int n,m,x,y,cost[30001],c[30001];
struct muchie
{
int y,c;
};
vector <muchie> v[30001];
void citire()
{
int a,b,c;
muchie aux;
scanf("%d%d%d%d",&n,&m,&x,&y);
for (int i=1;i<=m;++i)
{
scanf("%d%d%d",&a,&b,&c);
aux.y=b;
aux.c=c;
v[a].push_back(aux);
aux.y=a;
aux.c=-c;
v[b].push_back(aux);
}
}
void BF()
{
int st=0,sf=0,k;
c[0]=x;
while (st<=sf)
{
k=c[st++];
for (int i=0;i<v[k].size();i++)
if (cost[v[k][i].y]==0) {
cost[v[k][i].y]=cost[k]+v[k][i].c;
c[++sf]=v[k][i].y;
}
}
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
citire();
BF();
printf("%d",cost[y]);
return 0;
}