Pagini recente » Cod sursa (job #2410774) | Cod sursa (job #260972) | Cod sursa (job #560381) | Cod sursa (job #2638000) | Cod sursa (job #545423)
Cod sursa(job #545423)
#include <stdio.h>
#define FIN "royfloyd.in"
#define FOUT "royfloyd.out"
int n, a[105][105];
void ReadFloydInput()
{
freopen(FIN, "r",stdin);
freopen(FOUT, "w",stdout);
int i,j;
scanf("%d",&n);
for(i = 1; i <= n; ++i)
for(j = 1; j <= n; ++j)
scanf("%d",&a[i][j]);
}
void Solve()
{
int k,i,j;
for(k = 1; k <= n; ++k)
for(i = 1; i <=n; ++i)
for(j = 1; j <= n; ++j)
if( a[k][j] && a[i][k] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i != j) a[i][j] = a[i][k] + a[k][j];
}
void WriteFloydOutput()
{
int i,j;
for(i = 1; i <= n; ++i){
for(j = 1; j <= n; ++j)
printf("%d ",a[i][j]);
printf("\n");
}
}
int main()
{
ReadFloydInput();
Solve();
WriteFloydOutput();
return 0;
}