Cod sursa(job #1082069)

Utilizator Master011Dragos Martac Master011 Data 14 ianuarie 2014 09:56:14
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<cstdio>
#define FOR(i,a,b) for(i = a ; i <= b ; ++i)
#define MaxN 101
using namespace std;

int dist[MaxN][MaxN];

int main (){
    FILE *in=fopen("royfloyd.in","r");
    int n,i,j,k;
    fscanf(in,"%d",&n);
    FOR(i,1,n)
        FOR(j,1,n)
            fscanf(in,"%d",&dist[i][j]);
    fclose(in);
    FOR(k,1,n)
        FOR(i,1,n)
            FOR(j,1,n){
                if(dist[i][j]>dist[i][k]+dist[k][j])
                    dist[i][j]=dist[i][k]+dist[k][j];
            }
    FILE *out=fopen("royfloyd.out","w");
    FOR(i,1,n){
        FOR(j,1,n)
            fprintf(out,"%d ",dist[i][j]);
        fprintf(out,"\n");
    }
    fclose(out);
    return 0;
}