Pagini recente » Statistici Mircea Maria Ioana (mirceamaria1807) | Cod sursa (job #1605841) | Istoria paginii runda/r0 | Istoria paginii runda/oniprec | Cod sursa (job #2646836)
#include<bits/stdc++.h>
using namespace std;
#define MAXN 50005
#define ll long long int
const int inf=1e9+10;
vector<vector<int>> edge(MAXN);
vector<int> d(MAXN, inf);
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<(int)edge[u].size();i++){
v=edge[u][i];
if(d[u]+weight[make_pair(u,v)]<d[v]){
q.push(v);
d[v]=d[u]+weight[make_pair(u,v)];
}
}
}
for(int i=1;i<n;i++){
if(d[i]!=inf)
out<<d[i]<<" ";
else
out<<"0 ";
}
out<<"\n";
return 0;
}