Pagini recente » Cod sursa (job #1330510) | Cod sursa (job #2089005) | Cod sursa (job #843263) | Cod sursa (job #618948) | Cod sursa (job #1292295)
#include <cstdio>
#define DMAX 105
#define INF 1000000000
using namespace std;
FILE * fin=fopen("royfloyd.in", "r");
FILE * fout=fopen("royfloy.out", "w");
int n;
int D[DMAX][DMAX]; // matricea drumurilor de cost minim
void citire();
void royfloyd();
void afisare();
int main()
{
citire();
royfloyd();
afisare();
return 0;
}
void royfloyd()
{
int i, j, k;
for (k=1; k<=n; ++k)
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
if (D[i][j]>D[i][k]+D[k][j])
D[i][j]=D[i][k]+D[k][j];
}
void afisare()
{
int i, j;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
fprintf(fout, "%d ", D[i][j]);
fprintf(fout, "\n");
}
fclose(fout);
}
void init()
{
int i, j;
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
D[i][j]=INF;
}
void citire()
{
int i, j, cost;
fscanf(fin, "%d", &n);
init();
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
{
fscanf(fin, "%d ", &cost);
D[i][j]=cost;
}
D[i][i]=0;
}
}