Cod sursa(job #2959461)

Utilizator StefannnnnStefan Stefannnnn Data 31 decembrie 2022 12:15:18
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#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;
    }
}