Cod sursa(job #462189)

Utilizator S7012MYPetru Trimbitas S7012MY Data 9 iunie 2010 22:42:16
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <iostream>
using namespace std;

int mat[105][105],n;

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++)
                if (j==k) mat[j][k]=0;
                else mat[j][k]=min(mat[j][k],mat[j][i]+mat[i][k]);
}

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]);
        if(!mat[i][j]) mat[i][j]=9999999;
    }
    floyd_warshall();
    for(i=1; i<=n; i++) {
        for(j=1; j<=n; j++) printf("%d ",mat[i][j]);
        printf("\n");
    }
    return 0;
}