Cod sursa(job #1104122)

Utilizator vladradu2014Radu Vlad Alexandru vladradu2014 Data 10 februarie 2014 14:46:05
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#include <malloc.h>


int main()
{
   FILE*fp;
   int **a;
   int N;
   int i,j,k;
   
   
   fp=fopen("royfloyd.in","r");
   fscanf(fp,"%d",&N);
   
   a=(int**)malloc(sizeof(int*)*N);
   for(i=0;i<N;i++)
     *(a+i)=(int*)malloc(sizeof(int)*N);
   
   for(i=0;i<N;i++)
     for(j=0;j<N;j++)
        fscanf(fp,"%d",&*(*(a+i)+j));
   
   fclose(fp);
   
   for(k=0;k<N;k++)
     for(i=0;i<N;i++)
       for(j=0;j<N;j++)
        if(*(*(a+i)+k)&&*(*(a+k)+j)&&(*(*(a+i)+j)>*(*(a+i)+k)+*(*(a+k)+j)||*(*(a+i)+j))&&i!=j)
           *(*(a+i)+j)=*(*(a+i)+k)+*(*(a+k)+j);
   
   fp=fopen("royfloyd.out","w");
   for(i=0;i<N;i++){
       for(j=0;j<N;j++)
         fprintf(fp,"%d ",*(*(a+i)+j));
       fprintf(fp,"\n");
   }
   fclose(fp);
   
   return 0;
}