Pagini recente » Cod sursa (job #2980733) | Cod sursa (job #1669032) | Cod sursa (job #1016898) | Cod sursa (job #2646839) | Cod sursa (job #2646827)
#include<bits/stdc++.h>
using namespace std;
#define MAXN 100005
#define ll long long int
vector<vector<int>> edge(MAXN,vector<int>(0));
vector<ll> d(MAXN, 1e18);
map<pair<int,int>,int> weight;
int main(){
ifstream in("dijkstra.in");
ofstream out("dijkstra.out");
int n,m;
d[0]=0;
in>>n>>m;
int u,v,w;
for(int i=0;i<m;i++){
in>>u>>v>>w;
u--;v--;
edge[u].push_back(v);
edge[v].push_back(u);
weight[{u,v}]=w;
weight[{v,u}]=w;
}
priority_queue<int>q;
q.push(0);
while(q.size()){
u=q.top();
q.pop();
for(int i=0;i<edge[u].size();i++){
v=edge[u][i];
if(d[u]+weight[{u,v}]<d[v]){
q.push(v);
d[v]=d[u]+weight[{u,v}];
}
}
}
for(int i=1;i<n;i++){
out<<d[i]<<" ";
}
out<<"\n";
return 0;
}