Cod sursa(job #1193471)
| Utilizator | Data | 31 mai 2014 20:44:11 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
int main () {
int N;
int C[101][101];
int k,i,j;
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&N);
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
scanf("%d",&C[i][j]);
for(k=1;k<=N;k++)
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
if (C[i][k]!=0 && C[k][j] && (C[i][j]>C[i][k]+C[k][j] || C[k][j]==0) &&
i!=j )
C[i][j]=C[i][k]+C[k][j];
for(i=1;i<=N;i++) {
for(j=1;j<=N;j++)
printf("%d ",C[i][j]);
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}
