Cod sursa(job #1435142)

Utilizator nacrocRadu C nacroc Data 12 mai 2015 11:51:12
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#define NMAX 105

using namespace std;

int mat[NMAX][NMAX], dist[NMAX][NMAX];

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