Cod sursa(job #150060)
Utilizator | Data | 6 martie 2008 15:45:51 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <stdio.h>
int main()
{FILE *f;
int a[101][101],n,i,j,k;
f=fopen("royfloyd.in","r");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
fscanf(f,"%d",&a[i][j]);
fclose(f);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
if ((a[i][k]!=0)&&(a[k][j]!=0)&&((a[i][j]>a[i][k]+a[k][j])||(a[i][j]==0))&&(i!=j)) a[i][j]=a[i][k]+a[k][j];
f=fopen("royfloyd.out","w");
for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
fprintf(f,"%d ",a[i][j]);
fprintf(f,"\n");
}
fclose(f);
}