Cod sursa(job #2572720)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 5 martie 2020 13:57:37
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 105;
int a[NMAX][NMAX];

int main()
{
    int n;
    fin >> n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++)
            fin >> a[i][j];
    }
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(a[i][k]>0 and a[k][j]>0){
                    int cost=a[i][k]+a[k][j];
                    if(a[i][j]>cost and i!=j) a[i][j]=cost;
                }

            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            fout << a[i][j] << ' ';
        }
        fout << '\n';
    }
    return 0;
}