Cod sursa(job #2279338)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 9 noiembrie 2018 14:14:42
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
#define ADVANCED 0

using namespace std;

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

struct {
    int cost, venit_din;
} roy[258][258];

int N;
int main()
{
    f >> N;
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
            f >> roy[i][j].cost;
    for(int k = 1; k <= N; k++)
        for(int i = 1; i <= N; i++)
            for(int j = 1; j <= N; j++)
                if(roy[i][k].cost && roy[k][j].cost)
                    if(roy[i][j].cost > roy[i][k].cost + roy[k][j].cost) {
                        roy[i][j].cost = roy[i][k].cost + roy[k][j].cost;
                        roy[i][j].venit_din = k;
                    }
    for(int i = 1; i <= N; i++) {
        for(int j = 1; j <= N; j++)
            g << roy[i][j].cost << " ";
         g << "\n";
    }
    return 0;
}