Cod sursa(job #3166285)

Utilizator zetef3Dediu Stefan zetef3 Data 8 noiembrie 2023 10:16:41
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

const int NMAX=101;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int n;
int W[NMAX][NMAX], D[NMAX][NMAX];

void afis(int a[][NMAX]) {
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=n;j++)
            g << a[i][j] << ' ';
        g << '\n';
    }
}

void royfloyd() {
    for (int k=1;k<=n;k++) {
        for (int i=1;i<=n;i++) {
            for (int j=1;j<=n;j++) {
                if (k==1)
                    D[i][j]=min(W[i][j], W[i][k]+W[k][j]);
                else
                    D[i][j]=min(D[i][j], D[i][k]+D[k][j]);
            }
        }
    }
}

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

    royfloyd();
    afis(D);
    return 0;
}