Cod sursa(job #2265841)

Utilizator ShootingHorseHorsie Horse ShootingHorse Data 21 octombrie 2018 19:58:09
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <stdio.h>

#define MAX_NODES   257
#define MAX(X, Y)   ((X) > (Y) ? (X) : (Y))

int g[MAX_NODES][MAX_NODES], s[MAX_NODES][MAX_NODES];

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", &(g[i][j]));
            
            /*if (i != j)
                s[i][j] = 1;*/
        }
    }

    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                if (i != j && g[i][k] && g[k][j]) {
                    if (g[i][j] >= g[i][k] + g[k][j] || g[i][j] == 0) {
                        g[i][j] = g[i][k] + g[k][j];
                        // s[i][j] = MAX(s[i][j], s[i][k] + s[k][j]);
                    }
                }
            }
        }
    }

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++)
            printf("%d ", g[i][j]);
        printf("\n");
    }
/*    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++)
            printf("%d ", s[i][j]);
        printf("\n");
    }*/
}