Pagini recente » Cod sursa (job #154093) | Cod sursa (job #421356) | Cod sursa (job #3129615) | Cod sursa (job #37805) | Cod sursa (job #898613)
Cod sursa(job #898613)
#include<cstdio>
#include<vector>
#define NM 30002
using namespace std;
struct elem
{
int d,to;
};
vector <elem> a[NM];
int n,st,end;
bool viz[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 dfs(int pos, int dist)
{
if(viz[pos]) return;
viz[pos]=1;
if(viz[end])
{
printf("%d",dist);
return;
}
for(size_t i=0;i<a[pos].size();++i)
dfs(a[pos][i].to,dist+a[pos][i].d);
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
read();
//for(int i=1;i<=n;++i)
// if(! viz[i])
dfs(st,0);
return 0;
}