Pagini recente » Cod sursa (job #1824200) | Cod sursa (job #487005) | Cod sursa (job #927426) | Cod sursa (job #539025) | Cod sursa (job #2967673)
#include <bits/stdc++.h>
#define pii pair<int, int>
#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");
int 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++){
fout << d[i] << " ";
}
return 0;
}