Cod sursa(job #2758276)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 9 iunie 2021 15:09:21
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int main(){
    int n;
    in>>n;
    int a[n][n];
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            in>>a[i][j];
        }
    }
    for(int k=0;k<n;k++)
    for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
    if(a[i][k]&&
       a[k][j]&&
      (a[i][j]>a[i][k]+a[k][j] || !a[i][j])&&
         i!=j)
       a[i][j]=a[i][k]+a[k][j];
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            out<<a[i][j]<<' ';
        }
        out<<'\n';
    }
}