Pagini recente » Cod sursa (job #2157156) | Cod sursa (job #3169292) | Cod sursa (job #2736461) | Cod sursa (job #927870) | Cod sursa (job #2231553)
#include <bits/stdc++.h>
using namespace std;
int n,m,harta[50010],a,b,c;
vector<int> v[50010],d[50010];
void bfs()
{
for(int i=2;i<=n;i++) harta[i]=-1;
queue <int> q;
harta[1]=0;
q.push(1);
int curr,adj;
while(!q.empty())
{
curr=q.front();
q.pop();
for(int i=0;i<v[curr].size();i++)
{
adj=v[curr][i];
if(harta[adj]>harta[curr]+d[curr][i] || harta[adj]==-1)
{
q.push(adj);
harta[adj]=harta[curr]+d[curr][i];
}
}
}
}
int main()
{
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
cin>>n>>m;
for(;m;m--)
{
cin>>a>>b>>c;
v[a].push_back(b);
d[a].push_back(c);
v[b].push_back(a);
d[b].push_back(c);
}
bfs();
for(int i=2;i<=n;i++)
cout<<harta[i]<<' ';
return 0;
}