Cod sursa(job #2302771)

Utilizator dragos03dragos popescu septimiu dragos03 Data 15 decembrie 2018 10:03:54
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n,mat[101][101];

void citire()
{f>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{f>>mat[i][j];
if(mat[i][j]==0&&i!=j)
mat[i][j]=INT_MAX/2;
}}

void fct(int i,int j,int k)
{if(i!=j&&i!=k&&j!=k)
mat[i][j]=min(mat[i][j],mat[i][k]+mat[k][j]);}

void out()
{for(int i=1;i<=n;i++)
{for(int j=1;j<=n;j++)
g<<mat[i][j]<<" ";
g<<'\n';}


}

int main()
{citire();
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
fct(i,j,k);
out();




    return 0;
}