Cod sursa(job #462178)

Utilizator S7012MYPetru Trimbitas S7012MY Data 9 iunie 2010 22:28:53
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>

int mat[105][105],n;

inline int minim(int a,int b) {
    if(a>b) return b;
    else return a;
}

void floyd_warshall() {
    int i,j,k;
    for(i=1; i<=n; i++)
        for(j=1; j<=n; j++)
            for(k=1; k<=n; k++)
                mat[j][k]=minim(mat[j][k],mat[i][k]+mat[j][i]);
}

int main() {
    int i,j;
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    scanf("%d",&n);
    for(i=1; i<=n; i++) for(j=1; j<=n; j++) scanf("%d",&mat[i][j]);
    floyd_warshall();
    for(i=1; i<=n; i++) {
        for(j=1; j<=n; j++) printf("%d ",mat[i][j]);
        printf("\n");
    }
    return 0;
}