Cod sursa(job #1754411)

Utilizator cosmin004Manolescu Cosmin cosmin004 Data 8 septembrie 2016 09:33:32
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#define Max_N 105
using namespace std;
int n,v[Max_N][Max_N];
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
void citire()
{
    f>>n;
    for(int i =  1 ; i <= n ; i++)
        for(int j = 1 ; j <= n ; j++)
            f>>v[i][j];
}

void roy_floyd()
{
    for(int k = 1 ; k <= n  ; k++)
        for(int i = 1 ; i <= n ; i++)
            for(int j = 1 ; j <= n ; j++)
                if(v[i][k] && v[k][j] && (v[i][j] > v[i][k] + v[k][j] || !v[i][j]) && i != j)
                    v[i][j] = v[i][k] + v[k][j];
}

void print()
{
    for(int i = 1 ; i <= n ; i++)
    {
        for(int j = 1 ; j <= n ; j++)
            g<<v[i][j]<<' ';
        g<<'\n';
    }
}
int main()
{
    citire();
    roy_floyd();
    print();
    return 0;
}