Cod sursa(job #2779499)

Utilizator casiannCasian casiann Data 3 octombrie 2021 22:36:12
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

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



int main(){
    int a[101][101], n;
    fin >> n;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
            fin >> a[i][j];
    for(int ind3 = 1; ind3 <= n; ind3++)
        for(int ind1 = 1; ind1 <= n; ind1++)
            for(int ind2 = 1; ind2 <= n; ind2++){
                if( ind1 != ind2 && a[ind1][ind3] && a[ind3][ind2] && ( (a[ind1][ind3] + a[ind3][ind2] < a[ind1][ind2]) || a[ind1][ind2] == 0 ) )
                    a[ind1][ind2] = a[ind1][ind3] + a[ind3][ind2];
            }
    for(int i=1; i<=n; i++, fout << endl)
        for(int j=1; j<=n; j++)
            fout << a[i][j] << ' ' ;   
    return 0;
}