Cod sursa(job #199514)

Utilizator romocoderRomo Coder romocoder Data 19 iulie 2008 02:52:18
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
//@RomoCoder
#include <cstdio>
#include <algorithm>

using namespace std;
int v[128][128];

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

//RomoCoder in Action Again!