Cod sursa(job #3296306)

Utilizator horia.boeriuBoeriu Horia Andrei horia.boeriu Data 12 mai 2025 11:50:41
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <bits/stdc++.h>

using namespace std;
const int MAXN = 100;
const int INF = 1e9;
int minc[MAXN][MAXN];
int minim(int a, int b) {
    return a < b ? a : b;
}
int main()
{
    FILE *fin, *fout;
    int n, l, c, x, y, z;
    fin = fopen("royfloyd.in", "r");
    fscanf(fin, "%d", &n);
    for (l = 0; l < n; l++) {
        for (c = 0; c < n; c++) {
            fscanf(fin, "%d", &minc[l][c]);
            if (minc[l][c] == 0) {
                minc[l][c] = INF;
            }
        }
    }
    fclose(fin);
    for (z = 0; z < n; z++) {
        for (x = 0; x < n; x++) {
            for (y = 0; y < n; y++) {
                minc[x][y] = minim(minc[x][y], minc[x][z] + minc[z][y]);
            }
        }
    }
    fout = fopen("royfloyd.out", "w");
    for (l = 0; l < n; l++) {
        for (c = 0; c < n; c++) {
            if (minc[l][c] == INF || l == c) {
                minc[l][c] = 0;
            }
            fprintf(fout, "%d ", minc[l][c]);
        }
        fputc('\n', fout);
    }
    fclose(fout);
    return 0;
}