Cod sursa(job #2682358)

Utilizator MValentinMunteanu Valentin-Ioan MValentin Data 8 decembrie 2020 16:18:24
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int main()
{
    int a[100][100], d[100][100], n, i, j, k;
    f >> n;
    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
        {
            f >> a[i][j];
            if(a[i][j])
                d[i][j] = a[i][j];
            else
                d[i][j] = INT_MAX;
        }
    for(k = 0; k < n; k++)
        for(i = 0; i < n; i++)
            for(j = 0; j < n; j++)
                if (d[i][k] < INT_MAX && d[k][j] < INT_MAX && i != j)
                    d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(d[i][j] != INT_MAX)
                g << d[i][j] << " ";
            else
                g << "0 ";
        }
        g << "\n";
    }
    return 0;
}