Cod sursa(job #1363481)

Utilizator MaarcellKurt Godel Maarcell Data 26 februarie 2015 23:42:41
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#define INF (1<<30)
using namespace std;

int N,dp[110][110]; bool l;

int main(){
    ifstream fin("royfloyd.in");
    ofstream fout("royfloyd.out");
    fin >> N;

    int i,j,k;
    for (i=1; i<=N; i++)
        for (j=1; j<=N; j++)
            fin >> dp[i][j];

    for (k=1; k<=N; k++)
        for (i=1; i<=N; i++)
            for (j=1; j<=N; j++)
                if (dp[i][k] && dp[k][j] && (dp[i][k]+dp[k][j]<dp[i][j] || !dp[i][j]) && i!=j)
                    dp[i][j]=dp[i][k]+dp[k][j];

    for (i=1; i<=N; i++, fout << "\n")
        for (j=1; j<=N; j++)
            fout << dp[i][j] << " ";


    return 0;
}