Cod sursa(job #2298405)

Utilizator BurlacuMateiBurlacu Matei BurlacuMatei Data 8 decembrie 2018 09:46:43
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#define MAX 1010

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

int A[MAX][MAX], tata[MAX][MAX];
int n;
int u, v, x;

int main()
{int i, j;

    for(i = 1;i <= n;i++)
        for(j = 1;j <= n; j++)
            tata[i][j] = i;

    fin >> n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            fin>>A[i][j];

    for(x = 1;x <= n;x++)
        for(u = 1;u <= n;u++)
            for(v = 1;v <= n;v++)
            if(A[u][v] > A[u][x] + A[x][v])
                {
                    A[u][v] = A[u][x] + A[x][v];
                    tata[u][v] = tata[x][v];
                }

    for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
            fout<<A[i][j]<<' ';
        fout<<'\n';}

    return 0;
}