Cod sursa(job #1520775)

Utilizator DobosDobos Paul Dobos Data 9 noiembrie 2015 14:24:31
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("royfloyd.in");
ofstream fout ("royfloyd.out");
const int MAX = 105;
int M[MAX][MAX];
int main()
{
    int n;
    fin >> n;
    for(int i = 1;i <= n; i++)
        for(int j = 1;j <= n;j++)
            fin >> M[i][j];

   for(int k = 1; k <= n; k++){
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                if((M[i][j] > M[i][k] + M[k][j] || M[i][j] == 0) && M[k][j] && M[i][k] && i != j)
                   M[i][j] =  M[i][k] + M[k][j];
            }
        }
   }
    for(int i = 1;i <= n; i++){
        for(int j = 1;j <= n;j++){
            fout << M[i][j] << " ";
        }
        fout << "\n";
    }

    return 0;
}