Pagini recente » Cod sursa (job #1280931) | Cod sursa (job #1126490) | Cod sursa (job #2163609) | Cod sursa (job #303350) | Cod sursa (job #2854733)
#include <fstream>
#include <vector>
#define NMAX 100000
using namespace std;
int dist[NMAX + 1];
struct sat{
int nod, cost;
};
vector <sat> v[NMAX + 1];
void dfs (int node){
for (int i = 0; i < v[node].size(); i++){
if (dist[v[node][i].nod] == 0){
if (v[node][i].nod < node)
dist[v[node][i].nod] = dist[node] - v[node][i].cost;
else
dist[v[node][i].nod] = dist[node] + v[node][i].cost;
dfs (v[node][i].nod);
}
}
}
int main(){
ifstream fin ("sate.in");
ofstream fout ("sate.out");
int n, m, x, y, a, b, c;
fin >> n >> m >> x >> y;
for (int i = 0; i < m; i ++){
fin >> a >> b >> c;
v[a].push_back({b, c});
v[b].push_back({a, c});
}
dist[x] = 1;
dfs(x);
fout << dist[y] - 1;
return 0;
}