Cod sursa(job #2979005)

Utilizator Luca_Andrei1Andrei Luca MIhai Luca_Andrei1 Data 14 februarie 2023 18:32:21
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#pragma GCC optimize("O1")
#pragma GCC optimize("O2")
#include <fstream>
#include <algorithm>
#include <climits>
using namespace std;
const int valmax=1e9;
int mat[105][105],cost[105][105];
int main()
{
    ifstream fin("royfloyd.in");
    ofstream fout("royfloyd.out");
    int n;fin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            fin>>mat[i][j];cost[i][j]=mat[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(cost[i][j]==0&&i!=j){
                cost[i][j]=valmax;
            }
        }
    }
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                cost[i][j]=min(cost[i][j],cost[i][k]+cost[k][j]);
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(cost[i][j]!=valmax){
                fout<<cost[i][j]<<" ";
            }
            else{
                fout<<"0 ";
            }
        }
        fout<<'\n';
    }
    return 0;
}