Всем привет. Кто поможет с задачей?(Runtime error в системе)

Дана прямоугольная таблица A размера N × M . В ней требуется посчитать, сколько связных фигур из закрашенных клеток образуют прямоугольники. Связная фигура — фигура из соединенных между собой закрашенных клеток, соседних по сторонам. Прямоугольник должен быть со всех сторон окружен пустыми клетками или границами поля.

Формат ввода
В первой строке входных данных записаны два числа
N и M ( 1 ≤ N , M ≤ 2000) — размеры матрицы A . В каждой из следующих N строк записано M символов A i, j , равных ‘#’ (ASCII код 35) или ‘.’ (ASCII код 46), символ ‘#’ означает закрашенную клетку, ‘.’ - пустую.

Формат вывода
Выведите одно число: число закрашенных прямоугольников в исходной матрице.

Пример 1 Ввод Вывод 3 3 3 #.. ..# ##.

Пример 2 Ввод Вывод 5 5 2 ##.## #..## .##.. ###.# .##.#

Вот мой код:

x=0
def dfs(i, j):
    global x
    if i < 0 or i >= n or j < 0 or j >= m or grid[i][j] == '.':
        return
    g[x]=str(g[x])+' '+str(i)+'.'+str(j)
    grid[i][j] = '.'
    dfs(i - 1, j)
    dfs(i + 1, j)
    dfs(i, j - 1)
    dfs(i, j + 1)
def cord():
    global x
    for i in range(n):
        for j in range(m):
            if grid[i][j] == '#':
                x+=1
                dfs(i, j)
    return
n, m = map(int, input().split())
if n==1 and m==1:
    p=input()
    if p=='#':
        print('1')
    else:
        print('0')
g=['hah']*n*m
grid = [list(input().strip()) for _ in range(n)]
cord()
#здесь определили координаты точек и их принадлежность к фигурам (массив g)
for i in range(len(g)):
    g[i]=g[i].replace('hah','')
    if len(g[i]):
        g[i]=g[i][1::]
        g[i]+=' '
g = [i for i in g if i]
#удаляем лишнее
count=0
for i in g:
    a=['']*3+[-1]*4
    n=1
    v='x'
    for j in i:
        if j=='.':
            v='y'
        elif j==' ':
            if a[3]>int(a[1]) or a[3]==-1:
                a[3]=int(a[1])
            if a[5]<int(a[1]) or a[5]==-1:
                a[5]=int(a[1])
            if a[4]>int(a[2]) or a[4]==-1:
                a[4]=int(a[2])
            if a[6]<int(a[2]) or a[6]==-1:
                a[6]=int(a[2])
            a[1]=''
            a[2]=''
            v='x'
        elif v=='x':
            a[1]+=j
        elif v=='y':
            a[2]+=j
        n+=1
    if (i.count(' '))==(a[5]-a[3]+1)*(a[6]-a[4]+1):
        count+=1
print(count)

Ответы (0 шт):