Pagini recente » Cod sursa (job #2186111) | Cod sursa (job #2487682) | Cod sursa (job #1460933) | Autentificare | Cod sursa (job #2949244)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijsktra.out");
int n, m, i, nr1, nr2, nr3, aici;
int 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;
}