Mai intai trebuie sa te autentifici.

Cod sursa(job #2414247)

Utilizator capmareAlexCapmare Alex capmareAlex Data 24 aprilie 2019 13:15:40
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#define NMAX 101
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n, v[NMAX][NMAX];
void citire()
{
    fin >> n;
    for(int i = 1; i <= n; ++i)
        for( int j = 1; j<= n; ++j)
               fin >> v[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(i==j||!v[i][k]||!v[k][j])continue;
        if(v[i][j] > ( v[i][k] + v[k][j] ) || v[i][j] == 0)
               v[i][j] = v[i][k] + v[k][j];
    }
}
int main()
{
    citire();
    royfloyd();
    for(int i = 1;i <= n; ++i,fout<<"\n")
        for(int j = 1; j <=n ; ++j,fout<<" ")fout<<v[i][j];
    return 0;
}