Cod sursa(job #1393629)

Utilizator felipeGFilipGherman felipeG Data 19 martie 2015 17:19:17
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cstdio>
#define INF 10000
using namespace std;

FILE *f=fopen("royfloyd.in","r");
FILE *g=fopen("royfloyd.out","w");

long int a[100][100];
int n;
int main()
{
    fscanf(f,"%d",&n);

    for(int i=0;i<n;++i)
        for(int j=0;j<n;++j)
        {
           fscanf(f,"%ld",&a[i][j]);
           if(!a[i][j] && i!=j)
             a[i][j]=INF;
        }

    for(int k=0;k<n;++k)
      for(int i=0;i<n;++i)
        for(int j=0;j<n;++j)
                if(a[i][j]>a[i][k]+a[k][j])
                  a[i][j]=a[i][k]+a[k][j];

     for(int i=0;i<n;++i)
     {
        for(int j=0;j<n;++j)
          fprintf(g,"%ld ",a[i][j]%INF);
       fprintf(g,"\n");
     }
     return 0;
}