Cod sursa(job #2227911)

Utilizator IMIR33Iacob-Mare Ionut Radu IMIR33 Data 2 august 2018 10:32:52
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

int main()
{
    int N, M[101][101];
    int i, j, k;

    in >> N;

    for(i = 1; i <= N; i++)
        for(j = 1; j <= N; j++)
            in >> M[i][j];

    for(k = 1; k <= N; k++)
        for(i = 1; i <= N; i++)
            for(j = 1; j <= N; j++)
                if(M[i][k] && M[k][j] && (M[i][j] > M[i][k] + M[k][j] || !M[i][j] && i != j))
                    M[i][j] = M[i][k] + M[k][j];

    for(i = 1; i <= N; i++){
        for(j = 1; j <= N; j++)
            out << M[i][j] << " ";
        out << endl;
    }
    return 0;
}