Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Radiation Search by rybld2
def search(matrix, vus, lig, col):
def acceptable(l, c):
taille = len(matrix)
return 0 <= l < taille and 0 <= c < taille and not vus[l][c]
deplt = [(i, j ) for i in range(-1, 2) for j in range(-1, 2) if (i+j)**2==1]
vus[lig][col] = True
res = 1
for d1, d2 in deplt:
lig_1, col_1 = lig + d1, col + d2
if acceptable(lig_1, col_1) and matrix[lig_1][col_1] == matrix[lig][col]:
res += search(matrix, vus, lig_1, col_1)
return res
def checkio(matrix):
taille = len(matrix)
vus = [[0] * taille for _ in range(taille)]
taille_max, valeur = 0, 0
for lig in range(taille):
for col in range(taille):
if not vus[lig][col]:
res = search(matrix, vus, lig, col)
if res > taille_max:
taille_max, valeur = res, matrix[lig][col]
if res > taille ** 2 // 2: return [taille_max, valeur]
return [taille_max, valeur]
June 18, 2021