Cod sursa(job #2298407)

Utilizator Opariuc_RaresOpariuc Rares Ioan Opariuc_Rares Data 8 decembrie 2018 09:47:51
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>
#define INF 1000000000
using namespace std;

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

int a[101][101], tata[101][101], n;

void citire();
void graf();
void afisare();

int main()
{
    citire();
    graf();
    afisare();
    return 0;
}
void citire()
{
    int i, j;
    fin >> n;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= n; j++)
        {
            fin >> a[i][j];
            if(i!=j && a[i][j]==0)
                a[i][j]=INF/2;
        }
}
void graf()
{
    int x, v, u;
    for (x = 1; x <= n; x++)
        for (u = 1; u <= n; u++)
            for (v = 1; v <= n; v++)
            {
                if (u != v && a[u][v] > a[u][x] + a[x][v])
                {
                    a[u][v] = a[u][x] + a[x][v];
                    tata[u][v] = tata[x][v];
                }
            }
}
void afisare()
{
    int i, j;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= n; j++)
            fout << a[i][j] << ' ';
        fout << '\n';
    }
}