Pagini recente » Cod sursa (job #555086) | Cod sursa (job #1216355) | Cod sursa (job #824421) | Cod sursa (job #1008303) | Cod sursa (job #901099)
Cod sursa(job #901099)
#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];
int D[NM];
void read()
{
int m;
int x,y,dr;
scanf("%d %d %d %d",&n,&m,&st,&end);
while(m--)
{
scanf("%d %d %d",&x,&y,&dr);
a[x].push_back((elem){dr,y});
a[y].push_back((elem){-dr,x});
}
}
void dfs(int pos)
{
for(size_t i=0;i<a[pos].size();++i)
if(!viz[a[pos][i].to])
{
viz[a[pos][i].to]=1;
D[a[pos][i].to] = D[pos]+a[pos][i].d;
dfs(a[pos][i].to);
}
}
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
read();
viz[st]=1;
dfs(st);
printf("%d",D[end]);
return 0;
}