Cod sursa(job #311410)

Utilizator sandyxpSanduleac Dan sandyxp Data 3 mai 2009 13:24:28
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
using namespace std;

#define NUME "royfloyd"
ifstream fi(NUME".in");
ofstream fo(NUME".out");
#define MAXN 101

int N;
int A[MAXN][MAXN];

int main()
{
    int i, j, k;
    fi >> N;
    for (i = 1; i <= N; ++i)
        for (j = 1; j <= N; ++j)
            fi >> A[i][j];
    for (k = 1; k <= N; ++k)
        for (i = 1; i <= N; ++i)
            for (j = 1; j <= N; ++j) {
                if (i == j || j == k) continue;
                if (A[i][j] > A[i][k] + A[k][j])
                    A[i][j] = A[i][k] + A[k][j];
            }
    for (i = 1; i <= N; ++i) {
        for (j = 1; j <= N; ++j)
            fo << A[i][j] << " ";
        fo << "\n";
    }
    return 0;
}