Cod sursa(job #217376)

Utilizator hasegandaniHasegan Daniel hasegandani Data 28 octombrie 2008 08:58:30
Problema Floyd-Warshall/Roy-Floyd Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>

#define nmax 100

int a[nmax][nmax],n;

void RW()
{
     for(int k=1;k<=n;++k)
             for(int i=1;i<=n;++i)
                     for(int j=1;j<=n;++j)
                             if (a[i][j]>a[i][k]+a[k][j] && ( k!=j && k!=i ) )
                                a[i][j]=a[i][k]+a[k][j];
}

int main()
{
    FILE *f=fopen("royfloyd.in","r"),*g=fopen("royfloyd.out","w");
    fscanf(f,"%i",&n);
    for(int i=1;i<=n;++i)
            for(int j=1;j<=n;++j)
                fscanf(f,"%i",&a[i][j]);
    RW();
    for(int i=1;i<=n;++i)
            {
            for(int j=1;j<=n;++j)
                fprintf(g,"%i ",a[i][j]);
            fprintf(g,"\n");
            }
    return 0;
}