.
1 9 2 8 6 1
8 1 11 7 6 4
10 12 1 9 12 14
8 10 3 5 17 8
6 4 10 13 16 19
a = matrix
print(len(a) * len(a[0]))
print('0, 0')
print(len(a), ', ', len(a[0]))
import numpy as np
arr = np.array([
[1, 9, 2, 8, 6, 1],
[8, 1, 11, 7, 6, 4],
[10, 12, 1, 9, 12, 14],
[8, 10, 3, 5, 17, 8],
[6, 4, 10, 13, 16, 19],
])
max_val = (0, ((0, 0,), (0, 0)))
class GTFO(Exception):
pass
def check(arr):
for row in arr:
for val in row:
if val % 2 == 0:
return False
return True
for i in range(len(arr)):
for j in range(len(arr[0])):
try:
for k in range(i, len(arr)):
for l in range(j, len(arr[0])):
arr_slice = arr[i:k + 1, j:l + 1]
if check(arr_slice):
if len(arr_slice)*len(arr_slice[0]) > max_val[0]:
max_val = (len(arr_slice)*len(arr_slice[0]), ((i, j), (k, l)))
else:
if l == j:
raise GTFO
else:
break
except GTFO:
pass
print(max_val)
print(arr[max_val[1][0][0]:max_val[1][1][0]+1, max_val[1][0][1]:max_val[1][1][1]+1])
m = [[1, 9, 2, 8, 6, 1],
[8, 1, 11, 7, 6, 4],
[10, 12, 1, 9, 12, 14],
[8, 10, 3, 5, 17, 8],
[6, 4, 10, 13, 16, 19]]
mm = [[0] * (len(m[0]) + 1)]
for row in m:
r, t = [0], 0
for i, x in enumerate(row, 1):
t += x & 1
r.append(t + mm[-1][i])
mm.append(r)
res = []
for bottom in range(len(mm)):
for right in range(len(mm[0])):
for top in range(bottom):
for left in range(right - 1, -1, -1):
s = mm[bottom][right] + mm[top][left] - \
mm[top][right] - mm[bottom][left]
if s == (bottom - top) * (right - left):
res.append((s, top, left, bottom, right))
else:
break
s, top, left, bottom, right = max(res)
print("%d\n%d %d\n%d %d" % (s, top, left, bottom - 1, right - 1))
for row in m[top:bottom]:
print(row[left:right])
matrix = []
file = sys.argv[1]
with open(file, 'r') as f:
for line in f:
matrix.append(list(map(int, line.split())))
или
matrix = []
f=open('rectangle.txt','r')
for line in f:
matrix.append(list(map(int, line.split())))