Cod sursa(job #2646742)

Utilizator mihhTURCU MIHNEA ALEXANDRU mihh Data 1 septembrie 2020 20:47:53
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<bits/stdc++.h>

using namespace std;



ifstream fin("royfloyd.in");

ofstream fout("royfloyd.out");



const int NMAX=105;



int d[NMAX][NMAX];

int g[NMAX][NMAX];



int main(){

    int n;

    fin>>n;

    for(int i=1;i<=n;++i){

        for(int j=1;j<=n;++j){

            fin>>g[i][j];

            d[i][j]=g[i][j];

        }

    }

    for(int k=1;k<=n;++k)

        for(int i=1;i<=n;++i)

            for(int j=1;j<=n;++j){

                if(d[i][k] and d[k][j] and i!=j){

                    int x=d[i][k]+d[k][j];

                    if(!d[i][j]) d[i][j]=x;

                    else d[i][j]=min(x,d[i][j]);

                }

            }

    for(int i=1;i<=n;++i){

        for(int j=1;j<=n;++j){

            fout<<d[i][j]<<" ";

        }

        fout<<"\n";

    }

}