Pagini recente » Cod sursa (job #2936895) | Cod sursa (job #2352808) | Cod sursa (job #859916) | Cod sursa (job #2036884) | Cod sursa (job #497572)
Cod sursa(job #497572)
#include <stdio.h>
using namespace std;
#define nmax 105
int A[nmax][nmax];
int n;
void citire ()
{
int i, j;
freopen("royfloyd.in","r",stdin);
scanf("%d", &n);
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
scanf("%d", &A[i][j]);
}
void roy ()
{
int k, i, j;
for (k = 1; k <= n; ++k)
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
if (i!=j && A[i][k]>0 && A[k][j]>0 && (A[i][j]>A[i][k]+A[k][j] || A[i][j]==0) )
A[i][j] = A[i][k] + A[k][j];
}
void afisare ()
{
int i, j;
freopen("royfloyd.out","w",stdout);
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= n; ++j)
printf("%d ", A[i][j]);
printf("\n");
}
}
int main ()
{
citire ();
roy ();
afisare ();
return 0;
}