Pagini recente » Cod sursa (job #2169799) | Cod sursa (job #2862522) | Cod sursa (job #2575086) | Cod sursa (job #470426) | Cod sursa (job #1841561)
#include <iostream>
#include <cstdio>
#include <vector>
#define MAXN 30050
#define inf 0x3f3f3f3f
using namespace std;
struct vecin
{
int y, c;
vecin(int y = 0, int c = 0) : y(y), c(c) {}
};
int n, m, st, dr, sol, memo[MAXN];
vector<vecin> graf[MAXN];
void read()
{
scanf("%d %d %d %d", &n, &m, &st, &dr);
for (int i = 1; i <= m; i++) {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
graf[a].push_back(vecin(b, c));
graf[b].push_back(vecin(a, -c));
}
for (int i = 1; i <= n; i++)
memo[i] = inf;
}
void dfs(int nod, int dist)
{
if (memo[nod] != inf)
return;
memo[nod] = dist;
for (vecin v : graf[nod])
dfs(v.y, dist+v.c);
}
int main()
{
freopen("sate.in", "r", stdin);
freopen("sate.out", "w", stdout);
read();
dfs(st, 0);
printf("%d", memo[dr]);
return 0;
}