Cod sursa(job #1010052)

Utilizator laszloasandorLaszlo Sandor laszloasandor Data 14 octombrie 2013 11:06:15
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define nmax 101

int n;
int t[nmax][nmax];

int main()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    scanf("%d",&n);
    printf("n= %d\n",n);
    fr(i,0,n) fr(j,0,n) scanf("%d",&t[i][j]);

    fr(k,0,n)
        fr(i,0,n)
            fr(j,0,n)
                if(t[i][k]&&t[k][j]&&(t[i][j]>t[i][k]+t[k][j]||!t[i][j])&&i!=j) t[i][j]=t[i][k]+t[k][j];

    fr(i,0,n) {fr(j,0,n) printf("%d ",t[i][j]);printf("\n");}
    return 0;
}