Cod sursa(job #2964864)

Utilizator andu2006Alexandru Gheorghies andu2006 Data 14 ianuarie 2023 09:08:00
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;
typedef long long ll;
const ll NMAX=1e2+5;
ll dist[NMAX][NMAX];
int main()
{
    ifstream fin("royfloyd.in");
    ofstream fout("royfloyd.out");
    ll n;
    fin>>n;
    for(ll i=0;i<n;i++){
        for(ll j=0;j<n;j++){
            fin>>dist[i][j];
            if(dist[i][j]==0)
                dist[i][j]=1e9;
        }
    }
    for(ll k=0;k<n;k++){
        for(ll i=0;i<n;i++){
            for(ll j=0;j<n;j++){
                dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
            }
        }
    }
    for(ll i=0;i<n;i++){
        for(ll j=0;j<n;j++){
            if(dist[i][j]>=1e9 || i==j)
                dist[i][j]=0;
            fout<<dist[i][j]<<" \n"[j==n-1];
        }
    }
    return 0;
}