Pagini recente » Cod sursa (job #2983761) | Cod sursa (job #1405367) | Cod sursa (job #2815335) | Cod sursa (job #2756402) | Cod sursa (job #2116986)
#include <cstdio>
using namespace std;
int n;
int mat[100][100];
void calcularecost()
{
for(int k = 0 ; k < n ; k ++)
{
for(int i = 0 ; i < n ; i++)
{
if(i != k)
for(int j = 0 ; j < n ; j++)
{
if(j != k )
{
if(mat[i][j] > mat[i][k] + mat[k][j])
mat[i][j] = mat[i][k] + mat[k][j];
}
}
}
}
}
void afisare()
{
for(int i = 0 ; i < n ; i++)
{
for(int j= 0 ; j < n ; j++)
{
if( i == j)
{
printf("0 ");
continue;
}
if(mat[i][j] == 2000)
{
printf("0 ");
continue;
}
printf("%d ",mat[i][j]);
}
}
}
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d %d",&n);
for(int i = 0 ; i < n ; i++)
for(int j = 0 ; j < n ; j ++)
{
scanf("%d ",&mat[i][j]);
if(mat[i][j] == 0)
mat[i][j] = 2000;
}
calcularecost();
afisare();
return 0;
}