Cod sursa(job #2551363)

Utilizator sergiu44Stanciu Sergiu Nicolas sergiu44 Data 19 februarie 2020 19:36:45
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.53 kb
// Alg. lui Roy_Floyd sau Floyd_Warshall.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <fstream>

using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n, A[105][105];
void citire()
{
    
    f>>n;
    for (int i = 1; i<=n ; i++)
        for (int j = 1; j <= n; j++)
            f>>A[i][j];
    
}
void RoyFloyd()
{
    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                if (A[i][k] && A[k][j] && (A[i][k] + A[k][j] < A[i][j] || !A[i][j]) && i!=j)
                    A[i][j] = A[i][k] + A[k][j];
}
void afisare()
{
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
            g<<A[i][j]<<"  ";
        g<<"\n";
    }
}
int main()
{
    citire();
    RoyFloyd();
    afisare();
    return 0;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file