Pagini recente » Cod sursa (job #297441) | Cod sursa (job #2599553) | Cod sursa (job #3214700) | Cod sursa (job #3215167) | Cod sursa (job #3170276)
#include <iostream>
#include <fstream>
#include <utility>
#include <algorithm>
#include <vector>
#define NMAX 30002
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int N,M,X,Y;
vector<int> d;
vector<pair<int,int>> m[NMAX];
void read() {
f >> N >> M >> X >> Y;
X--;Y--;
d.resize(N);
for (int i=0;i<M;i++) {
int u,v,c;
f >> u >> v >> c;
u--;v--;
m[u].push_back(make_pair(v,c));
m[v].push_back(make_pair(u,-c));
}
fill(d.begin(), d.end(), -1);
}
void dfs(int u, int D) {
d[u]=D;
for (auto v:m[u]) {
if (d[v.first] == -1) {
dfs(v.first, D+v.second);
}
}
}
int main()
{
read();
dfs(X,0);
g << d[Y];
return 0;
}