Cod sursa(job #2755883)

Utilizator ViAlexVisan Alexandru ViAlex Data 28 mai 2021 17:42:24
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include<iostream>
#include<fstream>

using namespace std;

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

const int mx=102;
const int inf=1e9;

int rf[mx][mx],n;


void read(){
    in>>n;
    for(int i=0;i<n;i++){
        for(int k=0;k<n;k++){
            in>>rf[i][k];
            if(rf[i][k]==0 && i!=k){
                rf[i][k]=inf;
            }

        }
    }
}

void solve(){
    int newdist;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            for(int k=0;k<n;k++){
                newdist=rf[j][i]+rf[i][k];

                if(rf[j][k]>newdist){
                    rf[j][k]=newdist;
                }
            }
        }
    }


    for(int i=0;i<n;i++){
        for(int k=0;k<n;k++){
            out<<(rf[i][k]==inf?0:rf[i][k])<<" ";
        }
        out<<'\n';
    }
}

int main(){
    read();
    solve();
    return 0;
}