Cod sursa(job #2229182)

Utilizator butasebiButa Gabriel-Sebastian butasebi Data 6 august 2018 09:05:10
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
#define Nmax 1005
using namespace std;
int n, i, j, c[105][105], t[105][105];
void royfloyd()
{
    for(int k = 1;k <= n;k++)
        for(int i = 1;i <= n;i++)
            for(int j = 1;j <= n;j++)
                if(c[i][k] != Nmax && c[k][j] != Nmax && c[i][j] > c[i][k] + c[k][j] && i != j)
                {
                    c[i][j] = c[i][k] + c[k][j];
                    t[i][j] = t[k][j];
                }
}
int main()
{
    ifstream f("royfloyd.in");
    ofstream g("royfloyd.out");
    f >> n;
    for(i = 1;i <= n;i++)
        for(j = 1;j <= n;j++)
        {
            f >> c[i][j];
            if(c[i][j] == 0)c[i][j] = Nmax;
        }
    royfloyd();
    for(i = 1;i <= n;i++)
    {
        for(j = 1;j <= n;j++)
            if(c[i][j] == Nmax)g << "0" << " ";
            else g << c[i][j] << " ";
        g << "\n";
    }
    return 0;
}