def dywan_sierpinskiego(dywan, x, y, dlugosc_boku): if dlugosc_boku == 1: dywan[x][y] = True return dlugosc_boku = dlugosc_boku // 3 for i in range(3): for j in range(3): if i != 1 or j != 1: dywan_sierpinskiego(dywan, x + i * dlugosc_boku, y + j * dlugosc_boku, dlugosc_boku) def czy_przezyje(dywan, x, y, h): i = 0 while h > 0: if dywan[x + i][y] or dywan[x - i][y] or dywan[x][y + i] or dywan[x][y - i]: return True i = i + 1 h = h - 1 return False n = 4 dane = [ [27, 20, 0, 3], [729, 16, 129, 6], [27, 14, 13, 1], [9, 3, 6, 10] ] # utworzenie dywanu max_r = 729 dywan = [[False] * max_r for i in range(max_r)] dywan_sierpinskiego(dywan, 0, 0, max_r) for i in range(n): print("TAK" if czy_przezyje(dywan, dane[i][1], dane[i][2], dane[i][3]) else "NIE")