Pagini recente » Cod sursa (job #3319788) | Cod sursa (job #509504) | Cod sursa (job #834394) | Cod sursa (job #606822) | Cod sursa (job #3312700)
#include <bits/stdc++.h>
using namespace std;
int main() {
#ifndef LOCAL
freopen("dijkstra.in", "r", stdin);
freopen("dijkstra.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
int M;
cin >> N >> M;
vector<int> D(N, INT_MAX);
vector<vector<pair<int, int>>> G(N);
for (; M--;) {
int A;
int B;
int C;
cin >> A >> B >> C;
--A;
--B;
G[A].emplace_back(C, B);
}
priority_queue<pair<int, int>, vector<pair<int, int>>,
greater<pair<int, int>>>
pq;
D[0] = 0;
pq.emplace(0, 0);
for (; pq.size();) {
auto const [d, u] = pq.top();
pq.pop();
for (auto const [e, v] : G[u]) {
if (D[v] == INT_MAX) {
D[v] = D[u] + e;
pq.emplace(D[v], v);
}
}
}
for (int i = 1; i < N; ++i) {
if (i > 1) {
cout << " ";
}
cout << (D[i] == INT_MAX ? 0 : D[i]);
}
cout << "\n";
return 0;
}