Pagini recente » Cod sursa (job #1459415) | Cod sursa (job #1968771) | Cod sursa (job #2274934) | Cod sursa (job #1595642) | Cod sursa (job #726585)
Cod sursa(job #726585)
#include<stdio.h>
#include<vector>
#include<queue>
# define Max 30001
using namespace std;
vector < pair < int ,int > > a[Max];
queue <int> C;
int viz[Max],d[Max],y;
void bf(int x)
{ C.push(x);
viz[x]=1;
int z;
while(!C.empty() && z!=y)
{ z=C.front();
C.pop();
for(int i=0;i<a[z].size();++i)
{ if (!viz[a[z][i].first])
{ d[a[z][i].first]= d[z] + a[z][i].second;
viz[a[z][i].first]=1;
C.push(a[z][i].first);
}
}
}
}
int main()
{ int n,m,x,y;
int s,b,c;
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&x,&y);
for(int i=1;i<=m;++i)
{ scanf("%d%d%d",&s,&b,&c);
a[s].push_back(make_pair(b,c));
a[b].push_back(make_pair(s,-c));
}
bf(x);
printf("%d",d[y]);
}