Pagini recente » Istoria paginii utilizator/ichb_tiberiu_adelina_bogdan | Cod sursa (job #2783114) | Profil IuliaSlanina | Cod sursa (job #2751514) | Cod sursa (job #706084)
Cod sursa(job #706084)
# include <cstdio>
# include <queue>
# include <vector>
# define nmax 30005
using namespace std;
queue <int> Q;
vector <pair <int,int> > G[nmax];
int n, m, a, b, c, x, y, nod;
int viz[nmax], dist[nmax];
int main()
{int i;
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&x,&y);
for (i = 1; i <= m; i++)
{
scanf("%d%d%d",&a,&b,&c);
if (a > b) swap(a,b);
G[a].push_back(make_pair(b,c));
G[b].push_back(make_pair(a,-c));
}
Q.push(x);
viz[x] = 1;
for ( ; !Q.empty(); )
{
nod = Q.front();
Q.pop();
for (i = 0; i < G[nod].size(); i++)
if (!viz[G[nod][i].first])
{
viz[G[nod][i].first] = 1;
dist[G[nod][i].first] += dist[nod] + G[nod][i].second;
Q.push(G[nod][i].first);
}
}
printf("%d",dist[y]);
return 0;
}