Cod sursa(job #764195)

Utilizator mi5humihai draghici mi5hu Data 4 iulie 2012 13:03:30
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>

int main()
{
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);
    
    short int i, j, k, n, v[101][101];
    scanf("%hd", &n);
    
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            scanf("%hd", &v[i][j]);
        }
    }
    
    for (k = 0; k < n; k++) {
        for (i = 0; i < n; i++) {
            for (j = 0; j < n; j++) {
                if (v[i][k] + v[k][j] < v[i][j] 
                   && v[i][k] != 0 && v[k][j] != 0) {
                   v[i][j] = v[i][k] + v[k][j];            
                }
            }
        }
    }
    
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("%hd ", v[i][j]);
        }
        printf("\n");
    }
}