Cod sursa(job #2911764)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 1 iulie 2022 21:55:52
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>

using namespace std;
FILE *fin, *fout;

#define NMAX 100
int a[NMAX + 5][NMAX + 5];

int main()
{
    fin = fopen("royfloyd.in", "r");
    fout = fopen("royfloyd.out", "w");

    int n;
    fscanf(fin, "%d", &n);
    int i, j, k;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= n; j++)
            fscanf(fin, "%d", &a[i][j]);

    for(k = 1; k <= n; ++k)
        for(i = 1; i <= n; i++)
            for(j = 1; j <= n; j++)
                if(a[i][k] and a[k][j] and i != j and a[i][k] + a[k][j] < a[i][j])
                    a[i][j] = a[i][k] + a[k][j];

    for(i = 1; i <= n; i++)
    {
        for(j = 1; j <= n; j++)
            fprintf(fout, "%d ", a[i][j]);

        fprintf(fout, "\n");
    }

    fclose(fin);
    fclose(fout);
    return 0;
}