Pagini recente » Cod sursa (job #3186092) | Cod sursa (job #2560278) | Cod sursa (job #648146) | Cod sursa (job #64630) | Cod sursa (job #1436599)
#include<stdio.h>
#define INF 1000000000
#define DIM 260
FILE *f=fopen("royfloyd.in","r"), *g=fopen("royfloyd.out","w");
int N, C[DIM][DIM], D[DIM][DIM];
void Citire(){
int i, j, x;
fscanf(f,"%d\n",&N);
for(i=1;i<=N;i++)
for(j=1;j<=N;j++){
fscanf(f,"%d",&x);
if( x != 0 ){
C[i][j] = x;
D[i][j] = i;
}
else
C[i][j] = INF;
}
}
void Rezolvare(){
int i, j, k;
for(k=1;k<=N;k++)
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
if( i != j && i != k && j != k && C[i][j] > C[i][k] + C[k][j] ){
C[i][j] = C[i][k] + C[k][j];
D[i][j] = D[k][j];
}
}
void Afisare(){
int i, j;
for(i=1;i<=N;i++){
for(j=1;j<=N;j++){
if( C[i][j] == INF )
fprintf(g,"0 ");
else
fprintf(g,"%d ",C[i][j]);
}
fprintf(g,"\n");
}
}
int main(){
Citire();
Rezolvare();
Afisare();
return 0;
}