Cod sursa(job #3316747)

Utilizator PatrikKev75Szucs Patrik - Kevin PatrikKev75 Data 20 octombrie 2025 14:55:21
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
// https://www.infoarena.ro/problema/royfloyd - Szucs Patrik - Kevin
#include <fstream>

int main()
{
    int n;

    std::ifstream in("royfloyd.in");
    in >> n;

    int **mtrx = new int *[n];
    for (int i = 0; i < n; i++)
    {
        mtrx[i] = new int[n];
    }

    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            in >> mtrx[i][j];
    in.close();

    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            for (int k = 0; k < n; k++)
                if (mtrx[j][k] > mtrx[j][i] + mtrx[i][k] && j != k)
                    mtrx[j][k] = mtrx[j][i] + mtrx[i][k];

    std::ofstream out("royfloyd.out");
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            out << mtrx[i][j] << ' ';
        }
        out << '\n';
    }
    out.close();

    for (int i = 0; i < n; i++)
    {
        delete[] mtrx[i];
    }
    delete[] mtrx;

    return 0;
}