Pagini recente » Cod sursa (job #1272661) | Cod sursa (job #197144) | Cod sursa (job #2877007) | Cod sursa (job #1993339) | Cod sursa (job #296380)
Cod sursa(job #296380)
#include <cstdio>
#include <vector>
#include <bitset>
using namespace std;
#define pb push_back
#define maxN 30010
int D[maxN], N, M, X, Y;
vector <short int> A[maxN];
vector <int> C[maxN];
bitset <maxN> viz;
void df (short int x) {
viz[x] = 1;
for (short int i = 0; i < (short int) A[x].size(); ++ i)
if (!viz[A[x][i]]) {
D[A[x][i]] = D[x] + C[x][i];
df (A[x][i]);
}
}
int main () {
short int a, b;
int c;
freopen("sate.in", "r", stdin);
freopen("sate.out", "w", stdout);
scanf("%d%d%d%d", &N, &M, &X, &Y);
for ( ; M -- ; ) {
scanf("%hu%hu%u", &a, &b, &c);
A[a].pb(b);
A[b].pb(a);
C[a].pb(c);
C[b].pb(-c);
}
df (X);
printf("%d\n", D[Y]);
}