Pagini recente » Cod sursa (job #2489730) | Cod sursa (job #2969555) | Cod sursa (job #2534189) | Cod sursa (job #2890146) | Cod sursa (job #2949246)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int n, m, i, nr1, nr2, nr3, aici;
int32_t main()
{
const int maxx = 2147483647;
fin >> n >> m;
vector <vector <pair <int, int>>> adjl(n+1);
for (i = 0; i < m; ++i){
fin >> nr1 >> nr2 >> nr3;
adjl[nr1].push_back({nr2, nr3});
}
fin.close();
vector <int> viz(n+1), dist(n+1, maxx);
priority_queue <int> hip;
hip.push(1);
dist[1] = 0;
while (!hip.empty()){
aici = hip.top();
hip.pop();
if (viz[aici])
continue;
for (auto & r : adjl[aici]){
if (dist[r.first] > r.second + dist[aici]){
hip.push(r.first);
dist[r.first] = r.second + dist[aici];
}
}
viz[aici] = 1;
}
for (i = 2; i <= n; ++i){
fout << dist[i] << ' ';
}
fout << '\n';
fout.close();
return 0;
}