Cod sursa(job #2324674)

Utilizator crion1999Anitei cristi crion1999 Data 21 ianuarie 2019 12:21:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("royfloyd.in");
ofstream fo("royfloyd.out");

int paths[105][105];
int N;

int main()
{
    fi >> N;
    for(int i = 1; i <= N; ++i)
        for(int j = 1; j <= N; ++j)
        {
            fi >> paths[i][j];
            if(paths[i][j] == 0 && i != j)
                paths[i][j] = 10000;
        }

    for(int k = 1; k <= N; ++k)
        for(int i = 1; i <= N; ++i)
            for(int j = 1; j <= N; ++j)
                if(paths[i][j] > paths[i][k] + paths[k][j])
                    paths[i][j] = paths[i][k] + paths[k][j];
    for(int i = 1; i <= N; ++i)
    {
        for(int j = 1; j <= N; ++j)
            if(paths[i][j] == 10000)
                fo << 0 << " ";
            else
                fo << paths[i][j] << " ";
        fo << "\n";
    }
}