Pagini recente » Cod sursa (job #1388598) | tema | Cod sursa (job #2781097) | Cod sursa (job #2979050) | Cod sursa (job #1468007)
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int points, relations, source, destination;
vector<pair<int, int>> adj_graph[30005];
int distances[30005];
queue<int> to_visit;
bool visited[30005];
int main() {
freopen("sate.in", "r", stdin);
freopen("sate.out", "w", stdout);
cin >> points >> relations >> source >> destination;
for (int i = 0; i < relations; i++) {
int from, to, cost;
cin >> from >> to >> cost;
adj_graph[from].push_back(make_pair(to, cost));
adj_graph[to].push_back(make_pair(from, -cost));
}
to_visit.push(source);
visited[source] = true;
distances[source] = 0;
while (!visited[destination]) {
int current = to_visit.front();
to_visit.pop();
for (pair<int, int> next : adj_graph[current]) {
if (!visited[next.first]) {
distances[next.first] = distances[current] + next.second;
to_visit.push(next.first);
visited[next.first] = true;
}
}
}
cout << distances[destination] << endl;
return 0;
}