Cod sursa(job #968203)

Utilizator andy1496Casu-Pop Andrei andy1496 Data 1 iulie 2013 21:08:35
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>

 FILE *in=fopen("royfloyd.in", "rt"), *out=fopen("royfloyd.out", "w+");
 int a[101][101],i,j,k,n;
 


int main() {
	
 fscanf (in, "%d", &n);
    for(int i=1; i<=n; i++){
        for(int j=1; j<=n; j++){
            fscanf (in, "%d", &a[i][j]);
        }
    }
 
    for(int k=1; k<=n; k++){
        for(int i=1; i<=n; i++){
            for(int j=1; 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];
                }
            }
        }
    }
 
    for(int i=1; i<=n; i++){
        for(int j=1; j<=n; j++){
            fprintf (out, "%d ", a[i][j]);
        }
        fprintf (out, "\n");
    }
 
 
 
 return 0;
}