fork(8) download
  1. #include <stdio.h>
  2. int getMax(int,int);
  3. int getMax(int a,int b)
  4. {
  5. return (a>b)?a:b;
  6. }
  7. int main(void) {
  8. int a[50][50];
  9.  
  10.  
  11.  
  12. int i,j,k,nov;
  13. //read number of vertices
  14. scanf("%d",&nov);
  15.  
  16. //read intial input matrix
  17. for(i=0;i<nov;i++)
  18. for(j=0;j<nov;j++)
  19. scanf("%d",&a[i][j]);
  20.  
  21. //verify input matrix by printing
  22.  
  23. for(i=0;i<nov;i++)
  24. {
  25. for(j=0;j<nov;j++)
  26. printf("%d\t",a[i][j]);
  27. printf("\n");
  28. }
  29.  
  30. //perform computation
  31.  
  32. for(i=0;i<nov;i++)
  33. for(j=0;j<nov;j++)
  34. for(k=0;k<nov;k++)
  35. a[j][k]=getMax(a[j][k],a[j][i]+a[i][k]);
  36.  
  37. //print final output matrix
  38.  
  39. printf("\n");
  40. for(i=0;i<nov;i++)
  41. {
  42. for(j=0;j<nov;j++)
  43. printf("%d\t",a[i][j]);
  44. printf("\n");
  45. }
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 9424KB
stdin
4
0 1 0 0
0 0 0 1
0 1 0 1
0 0 0 0
stdout
0	1	0	0	
0	0	0	1	
0	1	0	1	
0	0	0	0	

25	26	28	44	
25	26	28	44	
28	29	31	47	
43	44	46	62