Pagini recente » Cod sursa (job #2594454) | Borderou de evaluare (job #1532893) | Cod sursa (job #2560609) | Cod sursa (job #1197701) | Cod sursa (job #975472)
Cod sursa(job #975472)
#include<stdio.h>
#define NMAX 101
void RoyFloyd(short a[NMAX][NMAX], short N){
short i, j, k;
for(k = 1; k <= N; k++)
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++)
if(i != j && a[i][k] != 0 && a[k][j] != 0 && (a[i][j] > a[i][k] + a[k][j] || a[i][j] == 0))
a[i][j] = a[i][k] + a[k][j];
}
int main(){
short i, j, N, a[NMAX][NMAX];
FILE *pf, *pg;
pf = fopen("royfloyd.in", "r");
pg = fopen("royfloyd.out", "w");
fscanf(pf, "%hd", &N);
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++)
fscanf(pf, "%hd", &a[i][j]);
RoyFloyd(a, N);
for(i = 1; i <= N; i++){
for(j = 1; j <= N; j++)
fprintf(pg, "%hd ", a[i][j]);
fprintf(pg, "\n");
}
fclose(pf);
fclose(pg);
return 0;
}