Pagini recente » Cod sursa (job #1789362) | Cod sursa (job #233519) | Cod sursa (job #481395) | Cod sursa (job #76004) | Cod sursa (job #2566739)
#include <bits/stdc++.h>
const int inf=2e9+3;
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
int n,m;
cin>>n>>m;
vector<pair<int,int>>v[n+3];
for(int i=1;i<=m;i++)
{
int x,y,k;
cin>>x>>y>>k;
v[x].push_back(make_pair(y,k));
}
vector<int>d(n+3,inf),p(n+3);
vector<bool>f(n+3,0);
d[1]=0;
for(int i=1;i<=n;i++)
{
int k=0;
for(int i=1;i<=n;i++)
if(!f[i] && (k==0 || d[i]<d[k])) k=i;
if(f[k]) break;
f[k]=1;
for(auto it:v[k])
if(d[k]+it.second<d[it.first])
{
d[it.first]=d[k]+it.second;
p[it.first]=k;
}
}
for(int i=2;i<=n;i++)
if(d[i]==inf) cout<<"0 "; else cout<<d[i]<<" ";
}