Cod sursa(job #2223157)

Utilizator david.sachelarieDavid Sachelarie david.sachelarie Data 19 iulie 2018 11:08:32
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>
#define MAX 1001

int v[100][100];

int main()
{
    FILE*fin,*fout;
    fin = fopen("royfloyd.in" ,"r");
    fout = fopen("royfloyd.out" ,"w");

    int n,i,j;
    fscanf(fin, "%d" ,&n);
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            fscanf(fin, "%d" ,&v[i][j]);
            if(v[i][j]==0 && i!=j) v[i][j]=MAX;
        }
    }

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

    for(i=0;i<n;i++){
        for(j=0;j<n;j++)
            fprintf(fout, "%d " ,v[i][j]);
        fprintf(fout, "\n");
    }
    return 0;
}