Cod sursa(job #3303217)

Utilizator Ruxandra009Ruxandra Vasilescu Ruxandra009 Data 14 iulie 2025 19:31:40
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.41 kb
#include <fstream>

using namespace std;

const string txt = "royfloyd";
const int inf = 1e6;

ifstream f(txt + ".in");
ofstream g(txt + ".out");

int roy[105][105], a[55][55], n, m;
pair<int, int> v[2000];

static void clean()
{
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            roy[i][j] = inf;
}

static void solv()
{
    f >> n;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            f >> roy[i][j];

    /*clean();
    f >> n >> m;
    for (int i = 1; i <= m; i++)
        f >> v[i].first >> v[i].second;

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            f >> a[i][j];

    for (int i = 1; i <= m; i++)
        roy[v[i].first][v[i].second] = roy[v[i].second][v[i].first] = a[v[i].first][v[i].second];
        */
    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                if (roy[i][j] > roy[i][k] + roy[k][j])
                    roy[i][j] = roy[i][k] + roy[k][j];

    //int oki = 1;
    for (int i = 1; i <= n; i++, g << '\n')
        for (int j = 1; j <= n; j++)
            g << roy[i][j] << " ";
            //if (roy[i][j] < a[i][j])
              //  oki = 0;

    //g << (oki ? "DA" : "NU") << '\n';
}

int main()
{
    int q; //f >> q;
    q = 1;
    for (; q >= 1; q--)
        solv();

    return 0;
}