Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. program wells_ska;
  2.  
  3. uses sysutils, strutils;
  4.  
  5. var
  6. M, N: integer;
  7. A: array of array of integer;
  8. B: array of array of double;
  9. i, j, ki, kj: integer;
  10. t, u, u1, u2: double;
  11. rezt: double;
  12.  
  13. label
  14. to_rezt;
  15.  
  16. begin
  17. //assign(input, 'input.txt'); reset(input);
  18. //assign(output, 'output.txt'); rewrite(output);
  19. readln(M, N);
  20. setLength(A, M+1, N+1);
  21. setLength(B, M+1, N+1);
  22.  
  23. for i := 1 to M do
  24. for j := 1 to N do begin
  25. read(a[i, j]);
  26. b[i, j] := 0;
  27. end;
  28.  
  29. for i := 1 to M do
  30. for j := 1 to N do begin
  31. for ki := -1 to 1 do
  32. for kj := -1 to 1 do begin
  33. if (i+ki < 1) or (i+ki >M) or (j+kj < 1) or (j+kj > N) then
  34. continue;
  35. if (ki=0) and (kj=0) then
  36. t := 1
  37. else
  38. t := 0.5;
  39. b[i, j] := b[i, j] + t * a[i+ki, j+kj];
  40. end;
  41. end;
  42.  
  43. u1 := b[1, 1];
  44. for i := 1 to M do
  45. for j := 1 to N do
  46. if u1 < b[i, j] then
  47. u1 := b[i, j];
  48.  
  49. u2 := -1;
  50. for i := 1 to M do
  51. for j := 1 to N do begin
  52. if b[i, j] < u1 then
  53. continue;
  54. u := -1;
  55. for ki := 1 to M do
  56. for kj := 1 to N do begin
  57. if (abs(i-ki) < 3) and (abs(j-kj) < 3) then
  58. continue;
  59. if b[ki, kj] > u then
  60. u := b[ki, kj];
  61. end;
  62. if u > u2 then begin
  63. u2 := u;
  64. if u2=u1 then
  65. goto to_rezt;
  66. end;
  67. end;
  68.  
  69. to_rezt:
  70.  
  71. rezt := u1+u2;
  72.  
  73. writeln(rezt:0:1);
  74. close(input);
  75. close(output);
  76.  
  77. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement