Cod sursa(job #2574491)

Utilizator niculaandreiNicula Andrei Bogdan niculaandrei Data 5 martie 2020 22:56:16
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define N_MAX 105

using namespace std;

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

int N, cost[N_MAX][N_MAX];
int dist[N_MAX][N_MAX];

int main()
{
    fin >> N;
    for (int i = 1; i <= N; i++)
        for (int j = 1; j <= N; j++)
        {
            fin >> cost[i][j];
            dist[i][j] = (cost[i][j] > 0 ? cost[i][j] : INT_MAX / 2);
        }

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

    for (int i = 1; i <= N; i++, fout << "\n")
        for (int j = 1; j <= N; j++)
            fout << (dist[i][j] == INT_MAX / 2 ? 0 : dist[i][j]) << " ";
    return 0;
}