Pagini recente » Cod sursa (job #1128918) | Cod sursa (job #1260320) | Cod sursa (job #2964814) | Cod sursa (job #2283244) | Cod sursa (job #2298566)
#include <bits/stdc++.h>
#define NMAX 30010
using namespace std;
queue <int> q;
vector < pair <int,int> > v[NMAX];
int n , m , i , j , x ,dist , start , finish , y;
int d[NMAX];
bool use[NMAX];
void bf(int s)
{
use[s] = true ;
q.push(s) ;
while (!q.empty())
{
int nod = q.front();
q.pop() ;
int len = v[nod].size();
for (i = 0 ; i < len ; ++ i)
{
int vecin = v[nod][i].first;
if (!use[vecin])
{
use[vecin] = true;
d[vecin] = d[nod] + v[nod][i].second;
q.push(vecin);
}
}
if (nod == finish) break ;
}
}
int main()
{
freopen("sate.in" , "r" , stdin) ;
freopen("sate.out" , "w" , stdout) ;
scanf ("%d %d %d %d" , &n , &m , &start , &finish);
for(i=1;i<=m;i++)
{
scanf("%d %d %d" , &x, &y , &dist);
v[x].push_back({y,dist}); // Se duce catre y;
v[y].push_back({x, -dist}); // Se intoarce x;
}
bf(start) ;
printf("%d " , d[finish]);
// <3
return 0;
}