結果
| 問題 |
No.2267 群の公理
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-04-14 23:41:05 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 96 ms / 2,000 ms |
| コード長 | 456 bytes |
| コンパイル時間 | 48 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 12,416 KB |
| 最終ジャッジ日時 | 2024-10-10 14:45:59 |
| 合計ジャッジ時間 | 6,092 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 |
コンパイルメッセージ
Syntax OK
ソースコード
N = gets.to_i
A = Array.new(N) { gets.split.map(&:to_i) }
def is_group(n, op)
# 結合律
r = 0 ... n
return false unless r.all? { |a| r.all? { |b| r.all? { |c| op[a][op[b][c]] == op[op[a][b]][c] } } }
identity = r.find { |e| r.all? { |a| op[a][e] == a and op[e][a] == a } } or return false
return false unless r.all? { |a| r.any? { |i| op[a][i] == identity and op[i][a] == identity } }
true
end
puts is_group(N, A) ? "Yes" : "No"