Pagini recente » Cod sursa (job #2747834) | Cod sursa (job #536688) | Cod sursa (job #660810) | Cod sursa (job #2525455) | Cod sursa (job #2541198)
#include <bits/stdc++.h>
#define MAX 30010
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector < pair <long long, long long> > G[MAX];
bool viz[MAX];
int n, m, x, y;
long long rez;
void dfs (int nod, long long dist){
if (nod == y){
rez = min(rez, dist);
}
viz[nod] = true;
for (int i = 0; i < G[nod].size(); i++){
int newnode = G[nod][i].first;
long long newdist = dist + G[nod][i].second;
if (viz[newnode] == false){
dfs(newnode, newdist);
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
f >> n >> m >> x >> y;
for (int k = 1; k <= m; k++){
int i, j;
long long d;
f >> i >> j >> d;
G[i].push_back({j, d});
G[j].push_back({i, (d*(-1))});
}
rez = 25000000;
dfs(x, 0);
g << rez;
return 0;
}