Cod sursa(job #2198010)

Utilizator SqueekDanielTodasca Daniel SqueekDaniel Data 23 aprilie 2018 12:39:46
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <climits>
#define dimn 100

std::ifstream f("royfloyd.in");
std::ofstream g("royfloyd.out");

int N;
int cost[dimn][dimn];

void royfloyd() {
    for (int i=0, j, k; i<N; i++)
        for (j=0; j<N; j++)
            for (k=0; k<N; k++)
                if(cost[i][j])  //daca e muchie
                    if(cost[i][j] > cost[i][k] + cost[k][j])
                        cost[i][j] = cost[i][k] + cost[k][j];
}

void citire() {
    f >> N;
    for (int i=0, j; i<N; i++)
        for (j=0; j<N; j++)
            f >> cost[i][j];
}
void rezolvare() {
    royfloyd();
    for (int i=0, j; i<N; i++) {
        for (j=0; j<N; j++)
            g << cost[i][j] << " " ;
        g << "\n";
    }
}

int main()
{
    citire();
    rezolvare();

    return 0;
}