Pagini recente » Cod sursa (job #2762279) | Cod sursa (job #1013353) | Cod sursa (job #1662664) | Cod sursa (job #573069) | Cod sursa (job #1991381)
#include <fstream>
using namespace std;
///explicat la semnul -I- pe caiet
int a[101][100], n;
void citire ()
{
freopen ("royfloyd.in", "r", stdin);
freopen ("royfloyd.out", "w", stdout);
scanf ("%d", &n);
int i, j;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
scanf ("%d", &a[i][j]);
}
void 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][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i != j)
a[i][j] = a[i][k] + a[k][j];
}
void afisare ()
{
int i, j;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
int main()
{
citire (); floyd (); afisare ();
return 0;
}