#!/usr/bin/env python3 # Načteme vstup: w, h udává velikost budovy, okna[i][j] obsahuje jednotlivá okna w, h = input().split() w, h = int(w), int(h) okna = [] for i in range(h): okna.append(list(input())) # Prohledávání do šířky: začne políčkem (i,j), všechna okna v souvislé # svítící oblasti pozhasíná a jako výsledek vrátí jejich počet. def bfs(i, j): fronta = [] def pridej(x, y): if x >= 0 and x < h and y >= 0 and y < w and okna[x][y] == "#": okna[x][y] = "." fronta.append((x, y)) pridej(i, j) velikost = 0 while fronta: i, j = fronta.pop() velikost += 1 pridej(i-1, j) pridej(i+1, j) pridej(i, j-1) pridej(i, j+1) return velikost # Hlavní část programu, která postupně objevuje souvislé svítící plochy pomocí bfs() nejlepsi = 0 for i in range(h): for j in range(w): if okna[i][j] == "#": dalsi = bfs(i, j) nejlepsi = max(nejlepsi, dalsi) print(nejlepsi)