Cod sursa(job #1511504)

Utilizator dan.marculetFII MarculetDan dan.marculet Data 26 octombrie 2015 20:26:41
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>

#define MAX_SIZE 101

int n;
int shortestPath[MAX_SIZE][MAX_SIZE];

int main() {
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);
    int i, j, k;

    scanf("%d", &n);
    for (i = 0; i < n; ++i)
        for (j = 0; j < n; ++j)
            scanf("%d", &shortestPath[i][j]);

    for (i = 0; i < n; ++i)
        for (j = 0; j < n; ++j)
            for (k = 0; k < n; ++k)
                if (shortestPath[i][j] > shortestPath[i][k] + shortestPath[k][j])
                    shortestPath[i][j] = shortestPath[i][k] + shortestPath[k][j];

    for (i = 0; i < n; ++i, printf("\n"))
        for (j = 0; j < n; ++j)
            printf("%d ", shortestPath[i][j]);

    return 0;
}