Pagini recente » Rating Vasiliu Alex (Tavise) | Cod sursa (job #2470879) | Cod sursa (job #1453889) | Cod sursa (job #828814) | Cod sursa (job #898740)
Cod sursa(job #898740)
#include<cstdio>
#include<vector>
#include<queue>
#define NM 30002
using namespace std;
struct elem
{
int d,to;
};
vector <elem> a[NM];
int n,st,end;
int d[NM];
void read()
{
int m;
int x,y,dr;
scanf("%d %d %d %d",&n,&m,&st,&end);
elem e;
while(m--)
{
scanf("%d %d %d",&x,&y,&dr);
e.to = y;
e.d = dr;
a[x].push_back(e);
e.to = x;
e.d = -dr;
a[y].push_back(e);
}
}
/*int sgn(int x,int y)
{
if(x>y) return 1;
return -1;
}*/
void solve()
{
queue <int> q;
int x,y;
d[st]=0;
q.push(st);
while(!q.empty())
{
x=q.front();
q.pop();
for(size_t i=0;i<a[x].size();++i)
{
y=a[x][i].to;
if(d[y]==0)
{
d[y]=d[x]+a[x][i].d;
q.push(y);
}
}
if(d[end]) break;
}
printf("%d",d[end]);
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
read();
//for(int i=1;i<=n;++i)
// if(! viz[i])
solve();
return 0;
}