Cod sursa(job #1000633)

Utilizator cbanu96Banu Cristian cbanu96 Data 23 septembrie 2013 14:58:52
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>

#define FILEIN "royfloyd.in"
#define FILEOUT "royfloyd.out"

using namespace std;

const int NMAX = 101;

int dist[NMAX][NMAX];

int main() {
    freopen(FILEIN, "r", stdin);
    freopen(FILEOUT, "w", stdout);
    int n, i, j, k;

    scanf("%d", &n);
    for ( i = 1; i <= n; i++) {
        dist[i][i] = 0;
        for ( j = 1; j <= n; j++) {
            scanf("%d", &dist[i][j]);
        }
    }

    for ( k = 1; k <= n; k++) {
        for ( i = 1; i <= n; i++) {
            for ( j = 1; j <= n; j++) {
                if (dist[i][k] + dist[k][j] < dist[i][j])
                    dist[i][j] = dist[i][k] + dist[k][j];
            }
        }
    }

    for ( i = 1; i <= n; i++) {
        for ( j = 1; j <= n; j++) {
            printf("%d ", dist[i][j]);
        }
        printf("\n");
    }
}