Cod sursa(job #2694098)

Utilizator SirbuSirbu Ioan Sirbu Data 8 ianuarie 2021 00:20:06
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
#define NMax 105

using namespace std;

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

int N;

int dist[NMax][NMax];

int main()
{

    fin >> N;

    for(int i = 1; i <= N; ++i)
        for(int j = 1; j <= N; ++j)
            fin >> dist[i][j];

    for(int k = 1; k <= N; ++k)
        for(int i = 1; i <= N; ++i)
            if(i != k)
                for(int j = 1; j <= N; ++j)
                    if(i != j && dist[i][k] != 0 && dist[k][j] != 0
                        && (!dist[i][j] || dist[i][k] + dist[k][j] < dist[i][j]))
                        dist[i][j] = dist[i][k] + dist[k][j];

    for(int i = 1; i <= N; ++i) {
        for(int j = 1; j <= N; ++j)
            fout << dist[i][j] << ' ';
        fout << '\n';
    }
	return 0;
}