Cod sursa(job #2959460)

Utilizator StefannnnnStefan Stefannnnn Data 31 decembrie 2022 12:15:02
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <vector>
#define nmax int32_t(1e5 + 5)
#define int long long
using namespace std;
//ifstream cin("royfloyd.in");
//ofstream cout("royfloyd.out");
int adj[1001][1001], ans[1001][1001];
int32_t main() {
    int n;
    cin>>n;
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++)
            cin>>ans[i][j];
    }
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++)
            if(!ans[i][j])
                ans[i][j] = 1e11;
    }
    for(int k=0; k<n; k++)
        for(int i=0; i<n; i++)
            for(int j=0; j<n; j++)
                if(i!=j && i!=k && j!=i)
                    ans[i][j] = min(ans[i][j], ans[i][k] + ans[k][j]);
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++)
            if(ans[i][j] == 1e11)
                ans[i][j] = 0;
    }
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++)
            cout<<ans[i][j]<<" ";
        cout<<endl;
    }
}