Pagini recente » Cod sursa (job #235974) | Cod sursa (job #1420867) | Cod sursa (job #319147) | Cod sursa (job #2001249) | Cod sursa (job #2203957)
#include <bits/stdc++.h>
using namespace std;
ifstream in("djikstra.in");
ofstream out("djikstra.out");
int n,m;
vector <pair<int,int> > v[50005];
int cost[50005];
priority_queue <pair<int,int> ,vector<pair<int,int> >,greater<pair<int,int> > > H;
void djikstra(int nod) {
int nou,pana_aici,c;
H.push(make_pair(0,nod));
cost[nod]=0;
while(!H.empty()) {
nod = H.top().second;
pana_aici=H.top().first;
H.pop();
for(auto vecin:v[nod]) {
nou=vecin.first;
c=vecin.second;
if(cost[nou]>c+cost[nod]) {
cost[nou]=c+cost[nod];
H.push(make_pair(cost[nou],nou));
}
}
}
}
int main()
{
int i,x,y,c;
in>>n>>m;
for(i=1;i<=n;i++) {
cost[i]=(1<<30);
}
for(int i=1;i<=m;i++) {
in>>x>>y>>c;
v[x].push_back(make_pair(y,c));
}
djikstra(1);
for(i=2;i<=n;i++) {
out<<cost[i]<<" ";
}
return 0;
}