Cod sursa(job #617495)

Utilizator psycho21rAbabab psycho21r Data 14 octombrie 2011 22:41:59
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    int n, a[100][100];
    ifstream in("royfloyd.in");
    in >> n;

    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            in >> a[i][j];
    in.close();

    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            for (int k = 0; k < n; ++k)
                if (j!=k && a[j][i] && a[i][k])
                    a[j][k] = a[j][k] != 0 ? min(a[j][i] + a[i][k], a[j][k]) : a[j][i] + a[i][k];

    ofstream out("royfloyd.out");

    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
            out << a[i][j] << " ";
        out << "\n";
    }

    out.close();
    return 0;
}