Cod sursa(job #3266629)

Utilizator iccjocIoan CHELARU iccjoc Data 9 ianuarie 2025 17:04:46
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <bits/stdc++.h>
using namespace std;

int n;
int ad[105][105];
int di[105][105];

int main()
{
    freopen("C:/Users/ioanc/Documents/vscode/royflyod.in", "r", stdin);
    freopen("C:/Users/ioanc/Documents/vscode/royflyod.out", "w", stdout);
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            cin >> ad[i][j];
            if(ad[i][j] == 0)
                ad[i][j] = 100005;
        }
    }
    for(int an = 1; an <= n; an++)
    {
        for(int i = 1; i <= n; i++)
        {
            for(int j = 1; j <= n; j++)
            {
                if(i == j || j == an || i == an)
                {
                    continue;
                }
                ad[i][j] = min(ad[i][j], ad[i][an] + ad[an][j]);
            }
        }
    }
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            if(ad[i][j] == 100005)
                cout << "0 ";
            else
                cout << ad[i][j] << " ";
        }
        cout << "\n";
    }
}