Cod sursa(job #2855951)

Utilizator MateiB1230Matei B MateiB1230 Data 23 februarie 2022 10:55:08
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>

using namespace std;
const float inf=1000000009;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
int n,m,a[1009][1009];
void citire()
{
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
         cin>>a[i][j];
}
void Roy_Floyd()
{
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(a[i][j]>a[i][k]+a[k][j])
                    a[i][j]=a[i][k]+a[k][j];
}
void drum(int i,int j)
{
    int g=0;
     for(int k=1;k<=n&&g==0;k++)
        if(i!=k&&j!=k)
        if(a[i][j]==a[i][k]+a[k][j])
     {
         drum(i,k);
         drum(k,j);
         g=1;
     }
     if(g==0) cout<<j<<" ";
}
int main()
{
   int x,y;
   cin>>n;
   citire();
   Roy_Floyd();
   for(int i=1;i<=n;i++)
   {
     cout<<endl;
     for(int j=1;j<=n;j++)
      cout<<a[i][j]<<" ";
   }
}