Cod sursa(job #1207713)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 13 iulie 2014 17:53:42
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream ka("royfloyd.in");
ofstream ki("royfloyd.out");
const int N_MAX = 100;
int distante[N_MAX][N_MAX];
int n;

void floyd_warshall()
{
    for(int i = 0; i < n; i++)
        distante[i][i] = 0;
    for(int k = 0; k < n; k++)
        for(int i = 0; i < n; i++)
            for(int j = 0; j < n; j++)
                if(distante[i][k] + distante[k][j] < distante[i][j])
                    distante[i][j] = distante[i][k] + distante[k][j];
}

int main()
{
    ka >> n;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            distante[i][j] = 0x3fffffff;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
        {
            ka >> distante[i][j];
            if(distante[i][j] == 0)
                distante[i][j] = 0x3fffffff;
        }
    floyd_warshall();
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
            if(distante[i][j] == 0x3fffffff)
                ki << 0 << " ";
            else
                ki << distante[i][j] << " ";
        ki << '\n';
    }
}