Cod sursa(job #2320316)

Utilizator MirunaStefaniaLupascu Miruna-Stefania MirunaStefania Data 14 ianuarie 2019 17:16:24
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
#define N 105
using namespace std;
ifstream  fin("royfloyd.in");
ofstream fout("royfloyd.out");

int n,a[N][N];

vector<int>G[N];

void read()
{int i,j,x;
 fin>>n;
 for(i=1;i<=n;++i)
    for(j=1;j<=n;++j)
 {fin>>x;
  if(x==0)x=1001;
  a[i][j]=x;
 }
}

void roy_floyd()
{int i,j,k;
 for(k=1;k<=n;++k)
    for(i=1;i<=n;++i)
        for(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 print()
{int i,j;
 for(i=1;i<=n;++i)
    {for(j=1;j<=n;++j)
         if(i==j)fout<<0<<" ";
         else if(a[i][j]==1001)fout<<0<<" ";
              else fout<<a[i][j]<<" ";
     fout<<"\n";

}

}


int main()
{   read();
    fin.close();

    roy_floyd();
    print();
    fout.close();
    return 0;
}