Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/python3.7
- # -*- coding: utf-8 -*import
- def valid(y,x):
- if y>=0 and x>=0 and y<N and x<horizontal_len:
- return True
- def find_blocks(y,x):
- Q.append(y)
- Q.append(x)
- dy = [0,1,0,-1]
- dx = [1,0,-1,0]
- while Q:
- y = Q.pop(0)
- x = Q.pop(0)
- for dir in range(len(dy)):
- next_y = y + dy[dir]
- next_x = x + dx[dir]
- if valid(next_y,next_x) and matrix[next_y][next_x] == 1:
- Q.append(next_y)
- Q.append(next_x)
- matrix[next_y][next_x] = -1
- N = int(input())
- matrix = []
- for rows in range(N):
- row = list(map(int, input().split()))
- matrix.append(row)
- horizontal_len = len(matrix[0])
- blocks = 0
- for start_y in range(N):
- for start_x in range(horizontal_len):
- if matrix[start_y][start_x] == 1:
- matrix[start_y][start_x] = -1
- Q=[]
- find_blocks(start_y, start_x)
- blocks +=1
- print(blocks)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement