Pagini recente » Cod sursa (job #711393) | Cod sursa (job #412240) | Cod sursa (job #245147) | Cod sursa (job #733072) | Cod sursa (job #3355778)
#include <bits/stdc++.h>
#define cin fin
#define cout fout
#define int long long
using namespace std;
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
int n,m;
struct cows
{
int a,b,val;
};
cows lin[300000];
int rez[50005];
vector<vector<int>>vc;
void Bfs(int x)
{
priority_queue<pair<int,int>>q;
q.push({-0,1});
while(!q.empty())
{
int vl=q.top().first*-1;
int poz=q.top().second;
q.pop();
for(int i=0;i<vc[poz].size();i++)
{
int poz2=0;
if(lin[vc[poz][i]].a==poz)
poz2=lin[vc[poz][i]].b;
else
poz2=lin[vc[poz][i]].a;
if(rez[poz2]>vl+lin[vc[poz][i]].val)
{
rez[poz2]=vl+lin[vc[poz][i]].val;
q.push({-rez[poz2],poz2});
}
}
}
}
signed main()
{
cin>>n>>m;
vc.resize(n+1);
for(int i=1;i<=n;i++)
rez[i]=5000000005ll;
for(int i=1;i<=m;i++)
{
cin>>lin[i].a>>lin[i].b>>lin[i].val;
vc[lin[i].a].push_back(i);
vc[lin[i].b].push_back(i);
}
rez[1]=0;
Bfs(1);
for(int i=2;i<=n;i++)
cout<<rez[i]<<" ";
return 0;
}