Cod sursa(job #1083527)

Utilizator tavi.belu1994FMI Belu Andrei Octavian tavi.belu1994 Data 16 ianuarie 2014 02:11:05
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
# include <cstdio>
# define NMax 101
FILE *f,*g;
using namespace std;

int N,Mat[NMax][NMax];

int main()
{
    f=fopen("royfloyd.in","r");
    g=fopen("royfloyd.out","w");
    int i,j,k;
    fscanf(f,"%d",&N);
    for( i = 1 ; i <= N ; ++i )
        for( j = 1 ; j <= N ; ++j )
            fscanf(f,"%d",&Mat[i][j]);
    for( k = 1 ; k <= N ; ++k )
        for( i = 1 ; i <= N ; ++i )
            for( j = 1 ; j <= N ; ++j )
                if( Mat[i][k] && Mat[k][j] && (Mat[i][j] > Mat[i][k] + Mat[k][j] || !Mat[i][j]) && i != j )
                    Mat[i][j] = Mat[i][k] + Mat[k][j];
    for( i = 1 ; i <= N ; ++i )
    {
        for( j = 1 ; j <= N ; ++j )
                fprintf(g,"%d ",Mat[i][j]);
        fprintf(g,"\n");
    }
    fclose(f);
    fclose(g);
    return 0;
}