Pagini recente » Cod sursa (job #1805666) | Cod sursa (job #1533969) | Cod sursa (job #1868517) | Cod sursa (job #2673615) | Cod sursa (job #2743515)
#include <bits/stdc++.h>
using namespace std;
#define elem pair<int, int>
int read() {
int n;
scanf("%d", &n);
return n;
}
int main() {
freopen("dijkstra.in", "r", stdin);
freopen("dijkstra.out", "w", stdout);
vector<vector<elem>> nodes(read() + 1);
for (int m = read(); m > 0; m--) {
int a = read();
nodes[a].push_back(elem(read(), read()));
}
vector<int> minim(nodes.size(), INT_MAX);
set<elem> coada;
coada.insert(elem(0, 1));
while (coada.size()) {
elem from = *(coada.begin());
coada.erase(coada.begin());
if (minim[from.second] <= from.first)
continue;
minim[from.second] = from.first;
for (elem act : nodes[from.second])
coada.insert(elem(act.first + from.first, act.second));
}
for (int i = 2; i < minim.size(); i++)
printf("%d ", minim[i] == INT_MAX ? 0 : minim[i]);
return 0;
}