Pagini recente » Cod sursa (job #674063) | Cod sursa (job #816318) | Cod sursa (job #1406277) | Cod sursa (job #241163) | Cod sursa (job #164685)
Cod sursa(job #164685)
#include<stdio.h>
#define input "royfloyd.in"
#define output "royfloyd.out"
#define dim 101
void rf();
long long unsigned n, a[dim][dim];
int main()
{
FILE *in, *out;
in = fopen (input, "r");
out = fopen (output, "w");
long long unsigned i, j;
fscanf(in, "%lld", &n);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
fscanf(in, "%lld", &a[i][j]);
rf();
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
fprintf(out, "%lld ", a[i][j]);
fprintf(out, "\n");
}
return 0;
}
void rf()
{
long long unsigned i, j, k;
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if((i!=k) && (j!=k) && (i!=j) && (a[i][k]!=0) && (a[k][j]!=0))
if(a[i][k]+a[k][j]<a[i][j])
a[i][j] = a[i][k]+a[k][j];
else if(!a[i][j])
a[i][j]=a[i][k]+a[k][j];
}