Cod sursa(job #2564608)

Utilizator MihclerioVladimir Chim Mihclerio Data 2 martie 2020 00:51:36
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

const int inf=2e9+3;
const int nmax=2e5;

using namespace std;

int main()
{
  ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
  freopen("royfloyd.in","r",stdin);
  freopen("royfloyd.out","w",stdout);

  int n;
  cin>>n;
  int a[n][n];
  for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
  {
    cin>>a[i][j];
    if(a[i][j]==0) a[i][j]=inf;
  }
  for(int k=0;k<n;k++)
  for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
  if(a[i][k]<inf && a[k][j]<inf && i!=j)
  a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
  for(int i=0;i<n;i++)
  {
    for(int j=0;j<n;j++) if(a[i][j]!=inf) cout<<a[i][j]<<" "; else cout<<"0 ";
    cout<<"\n";
  }

}