Cod sursa(job #2839383)

Utilizator BalasaRaduBalasa Radu BalasaRadu Data 25 ianuarie 2022 20:45:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;

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

const int dim=109,inf=1e9;

int n,c[dim][dim];

signed main(){
            fin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            fin>>c[i][j];
            if(i!=j&&c[i][j]==0){
                c[i][j]=inf;
            }
        }
    }
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(c[i][k] && c[k][j] && i!=j){
                    c[i][j]=min(c[i][j],c[i][k]+c[k][j]);
                }
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(c[i][j]==inf){
                fout<<0<<' ';
            }
            else{
                fout<<c[i][j]<<' ';
            }
        }
            fout<<'\n';
    }
}