Cod sursa(job #3366405)

Utilizator MorariuTMorariu MorariuT Data 1 octombrie 2026 14:09:45
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

const int NMAX = 105;
int v[NMAX][NMAX], rf[NMAX][NMAX];

int main()
{
    int n; fin >> n;
    
    for(int i = 0;i < n;i++)
    {
        for(int j = 0;j < n;j++) fin >> v[i][j];
    }

    for(int i = 0;i < NMAX;i++)
    {
        for(int j = 0;j < NMAX;j++)
        {
            rf[i][j] = v[i][j];
        }
    }

    for(int k = 0;k < n;k++)
    {
        for(int i = 0;i < n;i++)
        {
            for(int j = 0;j < n;j++)
            {
                if(rf[i][k] != 0 and rf[k][j] != 0)
                    rf[i][j] = min(rf[i][j], rf[i][k] + rf[k][j]);
            }
        }
    }

    for(int i = 0;i < n;i++)
    {
        for(int j = 0;j < n;j++) fout << rf[i][j] << " ";
        fout << endl;
    }
    
}