Pagini recente » Cod sursa (job #1248741) | Cod sursa (job #2904184) | Cod sursa (job #1639159) | Cod sursa (job #3281625) | Cod sursa (job #1579891)
#include <stdio.h>
#include <stdlib.h>
struct graf{
short n;
unsigned **a;
}G;
int main(){
FILE*f=fopen("royfloyd.in","r");
fscanf(f,"%hd",&G.n);
G.a=(unsigned**)malloc(sizeof(unsigned)*G.n);
for(short i=0;i<G.n;i++){
G.a[i]=(unsigned*)malloc(sizeof(unsigned)*G.n);
for(short j=0;j<G.n;j++)
fscanf(f,"%u",&G.a[i][j]);
}
fclose(f);
for(short k=0;k<G.n;k++)
for(short i=0;i<G.n;i++)
for(short j=0;j<G.n;j++)
if(G.a[i][k]&&G.a[k][j]&&(G.a[i][j]>G.a[i][k]+G.a[k][j]||!G.a[i][j])&&i!=j)
G.a[i][j]=G.a[k][j]+G.a[i][k];
FILE*h=fopen("royfloyd.out","w");
for(short i=0;i<G.n;i++){
for(short j=0;j<G.n;j++)
fprintf(h,"%u ",G.a[i][j]);
fprintf(h,"\n");
}
fclose(h);
return 0;
}