Pagini recente » Cod sursa (job #311834) | Cod sursa (job #2256874) | Cod sursa (job #1652028) | Cod sursa (job #203711) | 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;
}