Cod sursa(job #887333)
Utilizator | Data | 23 februarie 2013 18:18:29 | |
---|---|---|---|
Problema | Algoritmul lui Dijkstra | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<stdio.h>
int a[10000][10000];
int main()
{
int n,m,i,j,d[10000],x,c,y;
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
a[i][j]=0;
else
a[i][j]=1000000000;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&c);
a[x][y]=c;
}
for(i=1;i<=n;i++)
d[i]=a[1][i];
for(i=2;i<=n;i++)
for(j=1;j<=n;j++)
if(d[j]>d[i]+a[i][j])
d[j]=d[i]+a[i][j];
for(i=2;i<=n;i++)
printf("%d ",d[i]);
return 0;
}