Pagini recente » Cod sursa (job #2970672) | Cod sursa (job #1491823) | Cod sursa (job #2935378) | Cod sursa (job #1056682) | Cod sursa (job #999535)
Cod sursa(job #999535)
#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;
queue <int> q;
vector <pair<int,int> > v[30002];
int c[30002],d[30002];
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
int n,m,i,s,f,x,y,aux,l;
scanf("%d%d%d%d",&n,&m,&s,&f);
if(s==f)
{
printf("0\n");
return 0;
}
for(i=1;i<=m;++i)
{
scanf("%d%d%d",&x,&y,&l);
v[x].push_back(make_pair(y,l));
v[y].push_back(make_pair(x,-l));
}
////////////////////////////
q.push(s);
c[s]=1;
while(!q.empty())
{
aux=q.front();
q.pop();
for(i=0;i<v[aux].size();++i)
if(!c[v[aux][i].first])
{
c[v[aux][i].first]=1;
d[v[aux][i].first]=d[aux]+v[aux][i].second;
q.push(v[aux][i].first);
}
if(c[f]==1)
break;
}
printf("%d\n",d[f]);
return 0;
}