Pagini recente » Cod sursa (job #3128410) | Cod sursa (job #238010) | Cod sursa (job #2718721) | Cod sursa (job #3159357) | Cod sursa (job #2384675)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
vector<int> list[100010], road[100010];
queue<int> q;
int visit[100010], sum[100010];
int n, m, sat1, sat2, x, y;
int dis, node, length;
int main()
{
ifstream cin("sate.in");
ofstream cout("sate.out");
cin >> n >> m >> sat1 >> sat2;
for (int i = 0; i < m; i++)
{
cin >> x >> y >> dis;
list[x].push_back(y);
road[x].push_back(dis);
list[y].push_back(x);
road[y].push_back(dis);
}
visit[sat1] = 1;
q.push(sat1);
while (!q.empty())
{
node = q.front();
q.pop();
for (int i = 0; i < list[node].size(); i++)
{
int t = list[node][i];
int g = road[node][i];
if (visit[t] == 0)
{
visit[t] = 1;
if (node > t)
sum[t] = sum[node] - g;
if (node < t)
sum[t] = sum[node] + g;
if (t == sat2)
{
length = sum[sat2];
}
q.push(t);
}
}
}
cout << length;
return 0;
}