Cod sursa(job #3343055)

Utilizator Warrior.exeZgorcea Mihai-Alexandru Warrior.exe Data 26 februarie 2026 13:51:15
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

const int NMAX = 101;

int nr_noduri;
int mat_cost[NMAX][NMAX];


void citire(){
    fin>>nr_noduri;
    for(int i=1;i<=nr_noduri;i++){
        for(int j=1;j<=nr_noduri;j++){
            fin>>mat_cost[i][j];
        }
    }
}

void solve(){
    for(int k=1;k<=nr_noduri;k++){
        for(int i=1;i<=nr_noduri;i++){
            for(int j=1;j<=nr_noduri;j++){
                if(i!=j && mat_cost[i][j] > mat_cost[i][k] + mat_cost[k][j]){
                    mat_cost[i][j] = mat_cost[i][k] + mat_cost[k][j];
                }
            }
        }
    }
}

void afis(){
    for(int i=1;i<=nr_noduri;i++){
        for(int j=1;j<=nr_noduri;j++){
            fout<<mat_cost[i][j]<<" ";
        }
        fout<<'\n';
    }
}

int main(){
    citire();
    solve();
    afis();
    return 0;
}