Pagini recente » Cod sursa (job #2353805) | Cod sursa (job #1950094) | Cod sursa (job #1621976) | Cod sursa (job #1052433) | Cod sursa (job #3163622)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("sate.in");
ofstream cout("sate.out");
int n, m, st, fin;
const int nmax = 3e5 + 2;
struct muchie
{
int x;
int drum;
};
vector<muchie> mat[300000];
int viz[nmax];
int d[nmax];
void dfs(int nod)
{
for(muchie it : mat[nod]){
if(viz[it.x] == 0)
{
viz[it.x] = 1;
d[it.x] = d[nod]+it.drum;
dfs(it.x);
}
}
}
int main()
{
cin >> n >> m >> st >> fin;
if(st > fin)
swap(st, fin);
for(int i = 0; i<m; i++)
{
int a, b, c;
cin >> a >> b >> c;
mat[a].push_back({b, c});
mat[b].push_back({a, -c});
}
viz[st] = 1;
dfs(st);
cout << d[fin];
}