Pagini recente » Cod sursa (job #712773) | Cod sursa (job #1425834) | Cod sursa (job #2983560) | Cod sursa (job #297732) | Cod sursa (job #1400727)
#include<fstream>
#include<vector>
#include<stack>
using namespace std;
typedef int var;
ifstream fin("sate.in");
ofstream fout("sate.out");
#define MAXN 100002
struct Edge {
var n, c;
Edge(var a, var b) {
n = a;
c = b;
}
};
var n;
var D[MAXN];
bool VIZ[MAXN];
vector<Edge> G[MAXN];
stack<var> ST;
void dfs(var node) {
stack<var> ST;
VIZ[node] = 1;
ST.push(node);
while(!ST.empty()) {
var node = ST.top();
ST.pop();
for(auto e : G[node]) {
if(!VIZ[e.n]) {
VIZ[e.n] = 1;
D[e.n] = D[node] + e.c;
ST.push(e.n);
}
}
}
}
int main() {
var m, i, j, a, b, c;
fin>>n>>m>>i>>j;
while(m--) {
fin>>a>>b>>c;
G[a].push_back(Edge(b, c));
G[b].push_back(Edge(a, -c));
}
dfs(i);
fout<<D[j];
return 0;
}