Pagini recente » Cod sursa (job #957642) | Cod sursa (job #1469460) | Cod sursa (job #2142680) | Cod sursa (job #849409) | Cod sursa (job #1097664)
#include <cstdio>
#define Nmax 105
#define MAX ~(1<<31)
using namespace std;
FILE *fi = fopen("royfloyd.in", "r");
FILE *fo = fopen("royfloyd.out", "w");
int a[Nmax][Nmax];
int n;
void citire()
{
fscanf(fi, "%d", &n);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
fscanf(fi, "%d", &a[i][j]);
}
void roy()
{
for (int k = 1; k <= n; k++)
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (i != j && a[i][k] && a[k][j] &&(!a[i][j] || a[i][j] > a[i][k] + a[k][j]))
a[i][j] = a[i][k] + a[k][j];
}
void afisare()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
fprintf(fo, "%d ", a[i][j]);
fprintf(fo, "\n");
}
}
int main()
{
citire();
roy();
afisare();
return 0;
}