Pagini recente » Cod sursa (job #560109) | Cod sursa (job #144534) | Cod sursa (job #1263310) | Cod sursa (job #2868830) | Cod sursa (job #1128888)
#include<cstdio>
#include<vector>
#include<queue>
using namespace std;
vector < pair <int,int> > v[30005];
queue <int> q;
int n,m,s,f,x,y,c,viz[30005];
bool ok;
int main()
{
int i;
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&s,&f);
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));
}
q.push(s);
while (!q.empty() && !ok)
{
x=q.front(); q.pop();
for (i=0;i<v[x].size();++i)
{
y=v[x][i].first, c=v[x][i].second;
if (!viz[y])
{
if (y>x) viz[y]=viz[x]+c;
else viz[y]=viz[x]-c;
q.push(y);
}
if (y==f)
{
ok=true;
break;
}
}
}
printf("%d\n",viz[f]);
return 0;
}