Advertisement
Guest User

Untitled

a guest
Dec 20th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. import numpy as np
  2.  
  3. f = open("input.txt", "r")
  4.  
  5. arr = f.read().splitlines()
  6.  
  7. print(arr)
  8.  
  9. rows = []
  10. columns = []
  11.  
  12. visible = 0
  13.  
  14. index = 0
  15.  
  16. rows = arr
  17.  
  18. for i in range(0, len(rows)):
  19. column = [item[i] for item in rows]
  20.  
  21. columns.append(column)
  22.  
  23. def isVisibleUp(i, r, col):
  24. print("\nup")
  25.  
  26. print("current row", r)
  27. print("current index", i)
  28. print("current col", col)
  29.  
  30. col = [x for x in col if x != '']
  31. col = [int(x) for x in col]
  32.  
  33. print("column", col)
  34.  
  35. for f in reversed(range(0, len(col))):
  36. print(col[f])
  37. if f == i:
  38. break
  39. if col[f] > col[i]:
  40. print("not visible")
  41. print("\n")
  42. return False
  43.  
  44. print("visible\n")
  45.  
  46. return True
  47.  
  48. def isVisibleDown(i, r, col):
  49. print("\ndown")
  50.  
  51. print("current row", r)
  52. print("current index", i)
  53. print("current col", col)
  54.  
  55. col = [x for x in col if x != '']
  56. col = [int(x) for x in col]
  57.  
  58. print("column", col)
  59.  
  60. for f in range(0, len(col)):
  61. print(col[f])
  62. if f == i:
  63. break
  64. if col[f] > col[i]:
  65. print("not visible")
  66. print("\n")
  67. return False
  68.  
  69. print("visible\n")
  70.  
  71. return True
  72.  
  73. def isVisibleLeft(i, r, row):
  74. print("\nleft")
  75. row = list(row)
  76.  
  77. row = [int(x) for x in row]
  78.  
  79. print("value", r)
  80. print("index", i)
  81. print("current row", row)
  82.  
  83. for f in range(0, i):
  84. print(row[f])
  85. if row[f] >= row[f+1] and row[f] >= row[i]:
  86. print("not visible")
  87. print("\n")
  88. return False
  89.  
  90.  
  91. print("visible\n")
  92.  
  93. return True
  94.  
  95. def isVisibleRight(i, r, row):
  96. print("\nright")
  97. row = list(row)
  98. row = [int(x) for x in row]
  99.  
  100. print("value", r)
  101. print("index", i)
  102. print("current row", row)
  103.  
  104. for f in reversed(range(0, len(row))):
  105. print("count", f)
  106. print(row[f])
  107. if f == i:
  108. break
  109. if row[f] >= row[i]:
  110. print("not visible")
  111. print("\n")
  112. return False
  113.  
  114. print("visible\n")
  115.  
  116. return True
  117.  
  118. for iRow, row in enumerate(rows):
  119. print(iRow)
  120. # or isVisibleUp(iRow, value, columns[i]) or isVisibleDown(iRow, value, columns[i])
  121. print(row)
  122. print("\n")
  123. if iRow == 0 or iRow == len(rows)-1:
  124. print(row)
  125. print(iRow)
  126. print("edge\n")
  127. visible += len(row)
  128. else:
  129. for i, value in enumerate(row):
  130. if isVisibleLeft(i, value, row) or isVisibleRight(i, value, row) or isVisibleUp(iRow, value, columns[i]) or isVisibleDown(iRow, value, columns[i]):
  131. visible += 1
  132.  
  133. print("rows", rows)
  134.  
  135. print("columns", columns)
  136.  
  137. print("\n")
  138. print(visible)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement