Cod sursa(job #2964327)

Utilizator Alex_DumitrascuAlex Dumitrascu Alex_Dumitrascu Data 12 ianuarie 2023 20:13:25
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <cstdio>
using namespace std;
FILE *fin=fopen("royfloyd.in", "r");
FILE *fout=fopen("royfloyd.out", "w");
int mat[105][105];
int main()
{
    int n;
    fscanf(fin, "%d", &n);
    for (int i=1; i<=n; i++) {
        for (int j=1; j<=n; j++) {
            fscanf(fin, "%d", &mat[i][j]);
        }
    }
    for (int k=1; k<=n; k++) {
        for (int i=1; i<=n; i++) {
            ///drumul de la i la j
            for (int j=1; j<=n; j++) {
                ///vedem daca drumul minim de i-k-j < dMin[i][j]
                if (mat[i][k]+mat[k][j]<mat[i][j]) {
                    mat[i][j]=mat[i][k]+mat[k][j];
                }
            }
        }
    }
    for (int i=1; i<=n; i++) {
        for (int j=1; j<=n; j++) {
            fprintf(fout, "%d ", mat[i][j]);
        }
        fprintf(fout, "\n");
    }
    return 0;
}