Pagini recente » Cod sursa (job #3207512) | Cod sursa (job #2405484) | Cod sursa (job #3280562) | Cod sursa (job #1370434) | Cod sursa (job #159347)
Cod sursa(job #159347)
#include<iostream>
using namespace std;
long int n,m,d[2000]; short int v[2000]; int i,j,c[2000][2000],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;
while(!feof(stdin))
cin>>i>>j>>c[i][j];
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=1000;
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-1; i++)
if(d[i]!=10000) cout<<d[i]<<' ';
else cout<<'0'<<' ';
if(d[n]!=10000) cout<<d[n];
else cout<<'0';
fclose(stdin);
fclose(stdout);
return 0;
}