Cod sursa(job #1104849)

Utilizator swim406Teudan Adina swim406 Data 11 februarie 2014 09:21:51
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>
#define NMAX 101
#define inf 1<<31
#include <algorithm>

using namespace std;

int A[NMAX][NMAX];

int main() {
    int N, k, 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", &A[i][j]);
            if (!A[i][j] && i != j)
                A[i][j] = inf;
        }
    for (k = 1; k <= N; ++k)
        for (i = 1; i <= N; ++i)
            for (j = 1; j <= N; ++j)
                    A[i][j] = min(A[i][j], A[i][k] + A[k][j]);
    for (i = 1; i <= N; ++i) {
        for (j = 1; j <= N; ++j)
            //if (A[i][j] != inf)
                printf ("%d ", A[i][j]);
            //else printf ("0 ");
        printf ("\n");
    }
    return 0;
}