Cod sursa(job #2680002)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 2 decembrie 2020 11:45:11
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#define INF 2000000000
using namespace std;
int n,k,i,j,a[105][105];
int main(){
    ifstream fin ("royfloyd.in");
    ofstream fout ("royfloyd.out");
    fin>>n;
    for (i=1;i<=n;i++){
        for (j=1;j<=n;j++){
            fin>>a[i][j];
            if (i!=j&&a[i][j]==0){
                a[i][j]=INF;
            }
        }
    }
    for (k=1;k<=n;k++){
        for (i=1;i<=n;i++){
            if (i!=k){
                for (j=1;j<=n;j++){
                    if (j!=i&&j!=k){
                        if (a[i][k]!=0&&a[k][j]!=0&&a[i][k]+a[k][j]<a[i][j]){
                            a[i][j]=a[i][k]+a[k][j];
                        }
                    }
                }
            }
        }
    }
    for (i=1;i<=n;i++){
        for (j=1;j<=n;j++){
            if (a[i][j]==INF){
                fout<<"0 ";
            }
            else{
                fout<<a[i][j]<<" ";
            }
        }
        fout<<"\n";
    }
	return 0;
}