Cod sursa(job #2591189)

Utilizator Andrei26Andrei Dragulin Andrei26 Data 29 martie 2020 22:39:03
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int numarNoduri;
int matricePonderi[100][100];

void solutie(int n, int a[100][100]){

    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(a[i][j] > a[i][k] + a[k][j]) a[i][j] = a[i][k] + a[k][j];
            }
        }
    }

}

int main(){

    int i,j;
    fin>>numarNoduri;
    for(i=1;i<=numarNoduri;i++){
        for(j=1;j<=numarNoduri;j++)
            fin>>matricePonderi[i][j];
    }

    for(i=1;i<=numarNoduri;i++){
        for(j=1;i<=numarNoduri;j++){
            if(i!=j && matricePonderi[i][j] == 0)
                matricePonderi[i][j] = 100000000000;
        }
    }

    solutie(numarNoduri, matricePonderi);

    for(i=1;i<=numarNoduri;i++){
        for(j=1;j<=numarNoduri;j++)
            fout<<matricePonderi[i][j]<<" ";
        fout<<"\n";
    }

    fout.close();
    return 0;
}