Pagini recente » Cod sursa (job #1072011) | Cod sursa (job #2551033) | Cod sursa (job #2645115) | Cod sursa (job #1579822) | Cod sursa (job #2678792)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
#define cin fin
#define cout fout
const int nmax = 50000,oo = 2000000000;
vector <pair<int,int> >v[nmax+5];
int use[nmax+5],n,m,x,y,cost,d[nmax+5];
void read()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>x>>y>>cost;
v[x].push_back(make_pair(y,cost));
v[y].push_back(make_pair(x,cost));
}
}
void dijkstra()
{
for(int i=1;i<=n;i++)
d[i] = oo;
d[1] = 0;
for(int i=1;i<=n;i++)
{
int Min = oo,nod = oo;
for(int j=1;j<=n;j++)
if(d[j]<Min&&use[j]==0)
{
Min = d[j];
nod = j;
}
use[nod] = 1;
for(int j=0; j<(int)v[nod].size(); j++)
{
int vecin = v[nod][j].first, cost = v[nod][j].second;
d[vecin] = min(d[vecin],d[nod]+cost);
}
}
}
void print()
{
for(int i=2;i<=n;i++)
{
if(d[i]==oo)d[i] = 0;
cout<<d[i]<<' ';
}
}
int main()
{
read();
dijkstra();
print();
return 0;
}