Cod sursa(job #3319145)

Utilizator Mihaita09Nechitescu Mihai Mihaita09 Data 30 octombrie 2025 18:05:07
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <bits/stdc++.h>

using namespace std;

#define cin fin
#define cout fout
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int n,a[101][101];

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            cin >> a[i][j];
            if (a[i][j] == 0 && i!=j) a[i][j] = 1e9;
        }
    }
    for (int k = 1; k <= n; k++)
    {
        for (int i = 1; i <= n; i++)
        {
            if (i!=k && a[i][k] != 0)
            {
                for (int j = 1; j <= n; j++)
                {
                    if (j!=k && a[k][j] != 0)
                        a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
                }
            }
        }
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            if (a[i][j] == 1e9) cout << 0 << " ";
            else cout << a[i][j] << " ";
        }
        cout << endl;
    }



}