Submission #54356459


Source Code Expand

N = int(input())

pattern = [["#", "#", "#"], ["#", ".", "#"], ["#", "#", "#"]]

pattern_dict = {1: pattern}


def make_level(K):
    if K == 1:
        return pattern

    if K in pattern_dict:
        return pattern_dict[K]

    mini_mat = make_level(K - 1)
    mat = [["-" for _ in range(3**K)] for _ in range(3**K)]

    for i in range(3 ** (K - 1)):
        for j in range(3 ** (K - 1)):
            val = mini_mat[i][j]
            if val == "#":
                for k in range(3):
                    for ll in range(3):
                        mat[i * 3 + k][j * 3 + ll] = mini_mat[k][ll]
            else:
                for k in range(3):
                    for ll in range(3):
                        mat[i * 3 + k][j * 3 + ll] = "."

    pattern_dict[K] = mat

    return mat


if N == 0:
    print("#")
    exit()

for i in range(N):
    make_level(i + 1)

    if i == N - 1:
        mat = pattern_dict[i + 1]
        for j in range(3**N):
            print(*mat[j], sep="")

Submission Info

Submission Time
Task C - Sierpinski carpet
User Raki
Language Python (CPython 3.11.4)
Score 250
Code Size 1035 Byte
Status AC
Exec Time 166 ms
Memory 14248 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 250 / 250
Status
AC × 2
AC × 9
Set Name Test Cases
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt
Case Name Status Exec Time Memory
example_00.txt AC 9 ms 8936 KiB
example_01.txt AC 10 ms 8948 KiB
test_00.txt AC 27 ms 9864 KiB
test_01.txt AC 9 ms 8912 KiB
test_02.txt AC 12 ms 9064 KiB
test_03.txt AC 9 ms 8948 KiB
test_04.txt AC 10 ms 9004 KiB
test_05.txt AC 166 ms 14248 KiB
test_06.txt AC 9 ms 9020 KiB