/
k2709
/
matrix_task
Обзор
Документация
Войти
/
k2709
/
matrix_task
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
task2.py
84 строки
2 KB
urik
Initial commit
06 янв 2025, 18:02
06 янв 2025, 18:02
9d2fadf
Код
Авторство
О чём код?
""" Задача 1а: Наибольшая закрашенная область Программа должна находить наибольшую закрашенную область (без разрывов). Пример ввода: 6 5 3 0 0 3 2 2 1 5 4 4 0 6 3 Пример вывода: 6 (наибольшая область имеет площадь 6) 6 5 2 [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] 0 0 2 2 3 3 5 6 [1, 1, 0, 0, 0, 0] [1, 1, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 1, 1, 1] [0, 0, 0, 1, 1, 1] 4 должно быть 6 """ def find_max_area(matrix): """ Находит наибольшую закрашенную область в матрице. """ max_area = 0 print(f'len(matrix)= {len(matrix)}') for i in range(len(matrix)): print(f'i= {i}') print(f'len(matrix[{i}]= {len(matrix[i])}') for j in range(len(matrix[i])): print(f'j= {j}') if matrix[i][j] == 1: area = 1 for k in range(i+1, len(matrix)): if matrix[k][j] == 1: area += 1 else: break for l in range(j+1, len(matrix[i])): if matrix[i][l] == 1: area += 1 else: break max_area = max(max_area, area) print(f'max_area= {max_area}') return max_area def main(): """ Основная функция. """ n, m = map(int, input().split()) # n количество столбцов # m количество строк k = int(input()) matrix = [[0 for _ in range(n)] for _ in range(m)] for i in range(m): print(matrix[i]) for _ in range(k): x1, y1, x2, y2 = map(int, input().split()) for i in range(x1, x2): for j in range(y1, y2): matrix[i][j] = 1 for i in range(m): print(matrix[i]) print(find_max_area(matrix)) if __name__ == "__main__": main()