Cod sursa(job #909941)

Utilizator alin_iliciAlin Ilici alin_ilici Data 10 martie 2013 18:06:19
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;
#define maxn 101

void roy_floyd (int cost[maxn][maxn], int nr_noduri)
{
    int i,j,k;
    ofstream g("royfloyd.out");
    for (k = 1; k <= nr_noduri; k++)
        for (i = 1; i <= nr_noduri; i++)
            for (j = 1; j <= nr_noduri; j++)
                if (cost[i][k] + cost[k][j] < cost[i][j])
                    cost[i][j] = cost[i][k] + cost[k][j];
    for (i = 1; i <= nr_noduri; i++)
    {
        for (j = 1; j <= nr_noduri; j++)
            g<<cost[i][j]<<" ";
        g<<"\n";
    }
    g.close();
}

int main()
{
    int i,j,nr_noduri;
    ifstream f("royfloyd.in");
    f>>nr_noduri;
    int cost[maxn][maxn];
    for (i = 1; i <= nr_noduri; i++)
        for (j = 1; j <= nr_noduri; j++)
            f>>cost[i][j];
    roy_floyd (cost, nr_noduri);
    f.close();
    return 0;
}