Pagini recente » Cod sursa (job #1521766) | Cod sursa (job #1224022) | Cod sursa (job #2788262) | Cod sursa (job #149939) | Cod sursa (job #561769)
Cod sursa(job #561769)
#include<stdio.h>
#define INF 32000
int A[101][101];
int N;
void citire(void)
{
FILE *f = fopen("royfloyd.in","r");
fscanf(f,"%d ",&N);
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
{
fscanf(f,"%d ",&A[i][j]);
if(!A[i][j] && i!=j)
A[i][j] = INF;
}
fclose(f);
}
void royfloyd(void)
{
for(int k=1;k<=N;k++)
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
if(A[i][j] > A[i][k] + A[k][j])
A[i][j] = A[i][k] + A[k][j];
}
void afisare(void)
{
FILE *f = fopen("royfloyd.out","w");
for(int i=1;i<=N;i++)
{
for(int j=1;j<=N;j++)
if(A[i][j] != INF)
fprintf(f,"%d ",A[i][j]);
else
fprintf(f,"0 ");
fprintf(f,"\n");
}
fclose(f);
}
int main()
{
citire();
royfloyd();
afisare();
return 0;
}