Pagini recente » Cod sursa (job #1290272) | Cod sursa (job #2150450) | Cod sursa (job #2047410) | Cod sursa (job #514019) | Cod sursa (job #538575)
Cod sursa(job #538575)
#include<stdio.h>
FILE *in, *out;
int** mat;
int n;
void citire()
{
in = fopen("royfloyd.in","r");
out = fopen("royfloyd.out","w");
fscanf(in,"%d",&n);
mat=new int *[n];
for (int i = 0; i < n; i++)
mat[i] = new int [n];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
fscanf(in,"%d",&mat[i][j]);
}
void afisare()
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
fprintf(out,"%d ",mat[i][j]);
fprintf(out,"\n");
}
}
void royfloyd()
{
int i, j, k;
for ( i = 0; i < n ; i++)
for ( j = 0; j < n; j++)
for ( k = 0; k < n; k++)
if ( mat[i][j] > mat[i][k] + mat[k][j] )
mat[i][j] = mat[i][k] + mat[k][j];
}
int main()
{
citire();
royfloyd();
afisare();
fclose(in);
fclose(out);
return 0;
}