Cod sursa(job #1484876)

Utilizator DeltaMTP Dragos DeltaM Data 12 septembrie 2015 02:53:11
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<cstdio>
#define VMAX 1000000000
int n,i,j,k,x[110][110];
FILE *f,*g;
int main(){
    f=fopen("royfloyd.in","r");
    g=fopen("royfloyd.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            fscanf(f,"%d",&x[i][j]);
            if(x[i][j]==0&&i!=j)
                x[i][j]=VMAX;
        }
    }
    for(k=1;k<=n;k++){
        for(i=1;i<=n;i++){
            if(i!=k){
                for(j=1;j<=n;j++){
                    if(j!=k&&j!=i&&x[i][j]>x[k][j]+x[i][k])
                        x[i][j]=x[k][j]+x[i][k];
                }
            }
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            if(x[i][j]==VMAX)
                fprintf(g,"0 ");
            else
                fprintf(g,"%d ",x[i][j]);
        }
        fprintf(g,"\n");
    }

    fclose(f);
    fclose(g);
    return 0;
}