Pagini recente » Cod sursa (job #1589316) | Cod sursa (job #699703) | Cod sursa (job #2081558) | Cod sursa (job #208180) | Cod sursa (job #2864447)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("Dijkstra.in");
ofstream out("Dijkstra.out");
vector < pair < int, int > > v[50001];
int n, m, c, x, y, st, oo = 20000000, d[50001];
void dijk() {
for (int i = 2; i <= n; i++)
d[i] = oo;
queue < int > q;
q.push(1);
while (!q.empty()) {
int a = q.front();
q.pop();
for (auto i : v[a]) {
int b = i.first, cost = i.second;
if (d[b] > d[a] + cost) {
d[b] = d[a] + cost;
q.push(b);
}
}
}
for (int i = 2; i <= n; i++)
if (d[i] == oo)
out << "0 ";
else
out << d[i] << ' ';
}
int main() {
in >> n >> m;
for (int i = 1; i <= m; i++) {
in >> x >> y >> c;
v[x].push_back({y, c});
}
dijk();
return 0;
}