Pagini recente » Cod sursa (job #1982268) | Cod sursa (job #809317) | Cod sursa (job #2213136) | Cod sursa (job #1101624) | Cod sursa (job #1690928)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define NMAX 101
using namespace std;
FILE *in, *out;
int dim;
int INF = 0x3f3f3f3f;
int graph[NMAX][NMAX];
int n;
//int min1[NMAX][NMAX];
void roy_floyd();
void read();
void afisare();
int main()
{
in = fopen("royfloyd.in", "r");
out = fopen("royfloyd.out", "w");
read();
roy_floyd();
afisare();
return 0;
}
void read()
{
fscanf(in, "%d", &n);
int x;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
fscanf(in, "%d", &x);
graph[i][j] = x;
if (graph[i][j] == 0 && i != j)
graph[i][j] = INF;
}
}
void roy_floyd()
{
int i, j, k;
for (k = 0; k < n;k++)
for (i = 0; i < n;i++)
for (j = 0; j < n; j++)
{
if (i != j&&graph[i][j]>graph[i][k] + graph[k][j] && graph[i][k] != INF && graph[k][j] != INF)
{
graph[i][j] = graph[i][k] + graph[k][j];
}
}
}
void afisare()
{
int i=0, j=0;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
fprintf(out,"%d ", graph[i][j]);
}
fprintf(out, "\n");
}
}