Cod sursa(job #2672286)

Utilizator patriciaxdBraica Patricia patriciaxd Data 13 noiembrie 2020 16:31:47
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;
int A[101][101],n,m;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int oo=(1<<20);
int mini=oo,nr;
void solutie()
{ for(int i=1;i<=n;i++)
    { for(int j=1;j<=n;j++)
       out<<A[i][j]<<' ';
       out<<'\n';
    }

}
void fw()
{    for(int k = 1; k <= n; k ++)
    {
        for(int i = 1; i <= n; i ++)
        {
            for(int j = 1; j <= n; j ++)
            {
                if(i != j)
                {
                    if(A[i][k] > 0 && A[k][j] > 0)
                    {
                        if(A[i][j] == 0 || A[i][j] > A[i][k] + A[k][j])
                            A[i][j] = A[i][k] + A[k][j];
                    }
                }
            }
        }
    }
}
int main()
{ in>>n;
  for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++)
      in>>A[i][j];
  fw();
  solutie();
    return 0;
}