Pagini recente » Cod sursa (job #3273898) | Cod sursa (job #555231) | Cod sursa (job #430711) | Cod sursa (job #124959) | Cod sursa (job #2566736)
#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),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;
f[k]=1;
for(auto it:v[k]) d[it.first]=min(d[it.first],d[k]+it.second);
}
for(int i=2;i<=n;i++)
if(d[i]==inf) cout<<"0 "; else cout<<d[i]<<" ";
}