Решение на Python:
from sys import setrecursionlimit
f = open("26.txt")
N, rows, columns = list(map(int, f.readline().split()))
matrix = [[False] * columns for i in range(rows)]
for i in range(N):
row, column = list(map(int, f.readline().split()))
matrix[row - 1][column - 1] = True
def process_row(row, column):
if row + 1 >= rows or column + 1 >= columns:
return 0
if matrix[row][column] or matrix[row][column + 1]:
best_row, best_col = row - 1, column + 1
return best_row + 1, best_col + 1
return process_row(row + 1, column)
def process_column(row, column):
if row + 1 >= rows or column + 1 >= columns:
return 0
if matrix[row][column] or matrix[row][column + 1]:
process_column(row, column + 1)
else:
res.append(process_row(row, column))
process_column(row, column + 1)
res = []
setrecursionlimit(rows * columns)
process_column(0, 0)
print(max(res)) # (9991, 5643)Внимание! Код занимет 5,5 гигобайт операвтивной памяти.
Ответ: (9991, 5643)
Автор - rubygem17
None