Cod sursa(job #170294)

Utilizator redkar23Dezactiveazama redkar23 Data 2 aprilie 2008 16:46:51
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>

FILE *f,*g;

int mat[100][100];
int i,j,k,n;


int main(){
f=fopen("royfloyd.in","r");
g=fopen("royfloyd.out","w");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
  for(j=0;j<n;j++)
      fscanf(f,"%d",&mat[i][j]);

for(k=0;k<n;k++)
   for(i=0;i<n;i++)
     for(j=0;j<n;j++)
         if(i!=j)
           if(mat[i][k]&&mat[k][j])
              if(mat[i][j]>mat[i][k]+mat[k][j]||!mat[i][j]) mat[i][j]=mat[i][k]+mat[k][j];

for(i=0;i<n;i++){
  for(j=0;j<n;j++)
      fprintf(g,"%d ",mat[i][j]);
  fprintf(g,"\n");
  }

fclose(g);
return 0;
}