結果
問題 |
No.223 1マス指定の魔方陣
|
ユーザー |
![]() |
提出日時 | 2025-04-15 23:24:09 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,547 bytes |
コンパイル時間 | 168 ms |
コンパイル使用メモリ | 82,604 KB |
実行使用メモリ | 54,728 KB |
最終ジャッジ日時 | 2025-04-15 23:25:35 |
合計ジャッジ時間 | 3,406 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 16 WA * 30 |
ソースコード
def generate_transformations(magic_square): n = len(magic_square) transforms = [] # Original transforms.append([row.copy() for row in magic_square]) # Upside down transforms.append([row.copy() for row in reversed(magic_square)]) # Left-right flipped transforms.append([list(reversed(row)) for row in magic_square]) # Transposed transposed = [list(row) for row in zip(*magic_square)] transforms.append(transposed) # Rotated 90 degrees rotated = [list(reversed(col)) for col in zip(*magic_square)] transforms.append(rotated) # Rotated 180 degrees rotated180 = [list(reversed(row)) for row in reversed(magic_square)] transforms.append(rotated180) # Rotated 270 degrees rotated270 = [list(col) for col in reversed(list(zip(*magic_square)))] transforms.append(rotated270) # Complement (n^2 + 1 - num) complement = [[n*n + 1 - num for num in row] for row in magic_square] transforms.append(complement) return transforms def find_magic_square(n, x, y, z, magic_squares): target_y = y - 1 target_x = x - 1 for magic in magic_squares: transforms = generate_transformations(magic) for t in transforms: if t[target_y][target_x] == z: return t return None # Predefined 4x4 magic squares magic_squares_4x4 = [ [ [3, 13, 16, 2], [10, 8, 5, 11], [6, 12, 9, 7], [15, 1, 4, 14] ], [ [1, 15, 14, 4], [12, 6, 7, 9], [8, 10, 11, 5], [13, 3, 2, 16] ], [ [16, 2, 3, 13], [5, 11, 10, 8], [9, 7, 6, 12], [4, 14, 15, 1] ], [ [13, 8, 12, 1], [3, 10, 6, 15], [2, 11, 7, 14], [16, 5, 9, 4] ], [ [4, 14, 15, 1], [9, 7, 6, 12], [5, 11, 10, 8], [16, 2, 3, 13] ], [ [5, 11, 10, 8], [16, 2, 3, 13], [4, 14, 15, 1], [9, 7, 6, 12] ] ] n, x, y, z = map(int, input().split()) found = None if n == 4: magic_squares = magic_squares_4x4 for magic in magic_squares: transforms = generate_transformations(magic) for t in transforms: if t[y-1][x-1] == z: found = t break if found: break if found: for row in found: print(' '.join(map(str, row))) else: # For N=8 and N=16, a different approach is needed, but here we handle N=4 only pass