Cod sursa(job #2078224)

Utilizator lulian23Tiganescu Iulian lulian23 Data 29 noiembrie 2017 08:48:14
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
#define nmax 123

using namespace std;

int v[ nmax ][ nmax ], n;

void roy_floyd(){
    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
          for (int j = 1; j <= n; j++)
            if (v[ i ][ k ] && v[ k ][ j ] && i != j)
              if (v[ i ][ j ] > v[ i ][ k ] + v[ k ][ j ] || !v[ i ][ j ])
                 v[ i ][ j ] = v[ i ][ k ] + v[ k ][ j ];
}

int main(){
    ifstream cin("royfloyd.in");
    ofstream cout("royfloyd.out");

    cin >> n;

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
          cin >> v[ i ][ j ];

    roy_floyd();

    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++)
          cout << v[ i ][ j ] << " ";
        cout << '\n';
    }

    return 0;
}