提出 #54356459
ソースコード 拡げる
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="")
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Sierpinski carpet |
| ユーザ | Raki |
| 言語 | Python (CPython 3.11.4) |
| 得点 | 250 |
| コード長 | 1035 Byte |
| 結果 | AC |
| 実行時間 | 166 ms |
| メモリ | 14248 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 250 / 250 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 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 |