Cod sursa(job #2369707)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 6 martie 2019 08:52:52
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ("royfloyd.in");
ofstream g ("royfloyd.out");
const int nmax=1e2+3;
int n,d[nmax][nmax];
int main()
{
    ios::sync_with_stdio(false);
    f>>n;
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j) f>>d[i][j];
    }
    for(int k=1;k<=n;++k)
    {
        for(int i=1;i<=n;++i)
        {
            if(i==k) continue;
            for(int j=1;j<=n;++j)
            {
                if(i==j||j==k) continue;
                if((!d[i][j]||d[i][j]>d[i][k]+d[k][j])&&d[i][k]&&d[k][j]) d[i][j]=d[i][k]+d[k][j];
            }
        }
    }
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j) g<<d[i][j]<<' ';
        g<<'\n';
    }
    return 0;
}