Pagini recente » Cod sursa (job #2030300) | Cod sursa (job #353619) | Cod sursa (job #1722185) | Cod sursa (job #1609317) | Cod sursa (job #2967675)
#include <bits/stdc++.h>
#define pii pair<int, int>
#define int long long
#define INF 0x3F3F3F
#define MAX 50002
using namespace std;
int n,m,x,y,c,d[MAX];
vector<pii> v[MAX];
set<pii> s;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
signed main()
{
fin >> n >> m;
memset(d, INF, sizeof(d));
for(int i = 1; i <= m; i++){
fin >> x >> y >> c;
v[x].push_back({y, c});
}
d[1] = 0;
s.insert({0, 1});
while(!s.empty()){
int nod = (*s.begin()).second;
s.erase(s.begin());
for(auto [vecin, cost]: v[nod]){
if(d[vecin] > d[nod]+cost){
s.erase({d[vecin], vecin});
d[vecin] = d[nod]+cost;
s.insert({d[vecin], vecin});
}
}
}
for(int i = 2; i <= n; i++){
if(d[i] == INF){
fout << "0 ";
}else{
fout << d[i] << " ";
}
}
return 0;
}