Cod sursa(job #3316743)

Utilizator domdiridomdidomDominik domdiridomdidom Data 20 octombrie 2025 14:41:48
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>
#include <climits>

int main(){
    std::ifstream bem("royfloyd.in");
    std::ofstream kim("royfloyd.out");
    int n;
    bem >> n;
    int ** matriksz = new int * [n];
    for(int i = 0; i < n; i++)
        matriksz[i] = new int [n];
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            bem >> matriksz[i][j];
            if(matriksz[i][j] == 0 && i != j)
                matriksz[i][j] = INT_MAX;
        }
    }
    for(int k = 0; k < n; k++)
        for(int i = 0; i < n; i++)
            for(int j = 0; j < n; j++)
                if(matriksz[i][j] > matriksz[i][k] + matriksz[k][j] && matriksz[i][k] != INT_MAX && matriksz[k][j] != INT_MAX)
                    matriksz[i][j] = matriksz[i][k] + matriksz[k][j];
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++)
            kim << matriksz[i][j] << ' ';
        kim << '\n';
    }
    for(int i = 0; i < n; i++)
        delete [] matriksz[i];
    delete [] matriksz;
    bem.close();
    kim.close();
    return 0;
}