Cod sursa(job #3344726)

Utilizator victor_diaconu_1111Victor Diaconu victor_diaconu_1111 Data 5 martie 2026 00:07:56
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>

using namespace std;
const int inf=9999999;
int n, m, C[101][101];
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
#define cin fin
#define cout fout
void init()
{
    for (int i=1; i<=n; ++i)
    {
        for (int j=1; j<i; ++j)
            C[i][j]=C[j][i]=inf;
    }
}
void citire()
{
    int x, y, c;
    cin>>n;
    for (int i=1; i<=n; ++i)
    {
        for (int j=1; j<=n; ++j)
        {
            cin>>C[i][j];
        }
    }
}
void roy_floyd()
{
    int cost;
    for (int k=1; k<=n; ++k)
        for (int i=1; i<=n; ++i)
            for (int j=1; j<=n; ++j)
            {
                cost=C[i][k]+C[k][j];
                if (cost<C[i][j])
                    C[i][j]=cost;
            }
}
void afis()
{
    for (int i=1; i<=n; ++i)
    {
        for (int j=1; j<=n; ++j)
            if (C[i][j]==inf) cout<<"-1 ";
            else cout<<C[i][j]<<' ';
        cout<<'\n';
    }
}
int main()
{
    citire();
    roy_floyd();
    afis();
    return 0;
}