Cod sursa(job #2337010)

Utilizator AlexandruPaulSirbu Alex AlexandruPaul Data 5 februarie 2019 19:42:28
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
const int Maxx=1e2+1;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n;
int A[Maxx][Maxx];
void royfloyd(){
    int i,j,k;
    for (k=1;k<=n;++k){
        for (i=1;i<=n;++i){
            for (j=1;j<=n;++j){
                if (A[i][k] && A[j][k] && i!=j && (A[i][j]>A[i][k]+A[k][j] || !A[i][j])){
                    A[i][j]=A[i][k]+A[k][j];
                }
            }
        }
    }
}
int main() {
    fin>>n;
    int i,j;
    for (i=1;i<=n;++i){
        for(j=1;j<=n;++j){
            fin>>A[i][j];
        }
    }
    royfloyd();
    for (i=1;i<=n;++i){
        for (j=1;j<=n;++j){
            fout<<A[i][j]<<" ";
        }
        fout<<"\n";
    }
    return 0;
}