Cod sursa(job #2859322)

Utilizator XyanEusebiu Pusca Xyan Data 1 martie 2022 10:24:26
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int NMAX = 102;
int m[NMAX][NMAX], rf[NMAX][NMAX], N;

int w(int x, int y, int k)
{
    if(!k)
        return m[x][y];
    return min(w(x, y, k - 1), w(x, k, k - 1) + w(k, y, k - 1));
}

int main()
{
    fin>>N;
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
            fin>>m[i][j];
    for(int i = 1; i <= N; i++)
    {
        for(int j = 1; j <= N; j++)
        {
            if(i == j) continue;
            rf[i][j] = w(i, j, N);
        }
    }
    for(int i = 1; i <= N; i++) {
        for(int j = 1; j <= N; j++)
            fout << rf[i][j] << " ";
        fout<<endl;
    }
    return 0;
}