Cod sursa(job #202106)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 6 august 2008 08:50:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#define INF 100000
long m[101][101];

int main ()
{FILE *fin=fopen("royfloyd.in","r");
FILE*fout=fopen("royfloyd.out","w");
int i,j,k,n;
fscanf(fin,"%d",&n);
for (i=1;i<=n;i++)
{for(j=1;j<=n;j++)
 {fscanf(fin,"%ld",&m[i][j]);
  if (i!=j&&m[i][j]==0){m[i][j]=INF;}
 }
}
 for (k=1;k<=n;k++)
 {for (i=1;i<=n;i++)
  {for(j=1;j<=n;j++)
   {if(m[i][k]+m[k][j]<m[i][j])
    {m[i][j]=m[i][k]+m[k][j];
    }
   }
  }
 }
for (i=1;i<=n;i++)
{for(j=1;j<=n;j++)
 {if (m[i][j]==INF){m[i][j]=0;}
  fprintf(fout,"%ld ",m[i][j]);
 }
 fprintf(fout,"\n");
}
fclose(fout);
fclose(fin);
return 0;
}