Pagini recente » Profil Samoila_Alexandru | Cod sursa (job #24879) | Cod sursa (job #2360167) | Cod sursa (job #1091196) | Cod sursa (job #159364)
Cod sursa(job #159364)
#include<iostream>
using namespace std;
long int n,m,d[1005]; short int v[1005]; int i,j,c[1005][1005],mi,poz;
int main ()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
cin>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
c[i][j]=10000;
for(i=1; i<=m; i++)
cin>>mi>>poz>>c[mi][poz];
for(i=1; i<=n; i++)
d[i]=c[1][i];
d[1]=0;
v[1]=1;
for(i=1; i<=n-1; i++)
{
mi=10000;
for(j=1; j<=n; j++)
if(v[j]==0 && d[j]<mi)
{
mi=d[j];
poz=j;
}
v[poz]=1;
for(j=1; j<=n; j++)
if(v[j]==0 && d[j]>d[poz]+c[poz][j]) d[j]=d[poz]+c[poz][j];
}
for(i=2; i<=n; i++)
if(d[i]!=10000) cout<<d[i]<<' ';
else cout<<0<<' ';
fclose(stdin);
fclose(stdout);
return 0;
}