結果
問題 | No.2267 群の公理 |
ユーザー |
![]() |
提出日時 | 2023-04-14 23:02:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 45 ms / 2,000 ms |
コード長 | 1,262 bytes |
コンパイル時間 | 267 ms |
コンパイル使用メモリ | 82,260 KB |
実行使用メモリ | 52,992 KB |
最終ジャッジ日時 | 2024-10-10 14:04:20 |
合計ジャッジ時間 | 3,728 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
# 単位元の列では0123---となる必要がある、行も同様 # 逆元があるのだから各行に単位元が存在する # 結合律が成り立つためには対角線でミラーの関係が必要 # 自信ないがそれでやってみるか N = int(input()) matrix = [] unit_test1 = False unit = -1 for i in range(N): temp = list(map(int, input().split())) matrix.append(temp) if temp == [a for a in range(N)]: unit_test1 = True unit = i unit_test2 = True for i in range(N): if matrix[i][unit] != i: unit_test2 = False inverse_test1 = True for i in range(N): if unit not in matrix[i]: inverse_test1 = False inverse_test2 = True for j in range(N): temp = set() for i in range(N): temp.add(matrix[i][j]) if unit not in temp: inverse_test2 = False transpose = [[0]*N for i in range(N)] for i in range(N): for j in range(N): transpose[i][j] = matrix[j][i] if transpose == matrix: transpose_test = True else: transpose_test = False ans = 'No' if unit_test1 == True and unit_test2 == True: if inverse_test1 == True and inverse_test2 == True: if transpose_test == True: ans = 'Yes' print(ans)