結果
問題 |
No.2267 群の公理
|
ユーザー |
![]() |
提出日時 | 2023-04-17 22:00:18 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 93 ms / 2,000 ms |
コード長 | 678 bytes |
コンパイル時間 | 355 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,288 KB |
最終ジャッジ日時 | 2024-10-12 22:21:11 |
合計ジャッジ時間 | 6,559 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
コンパイルメッセージ
Syntax OK
ソースコード
N = gets.to_i X = N.times.map { gets.split.map(&:to_i) } def f N.times do |n0| N.times do |n1| N.times do |n2| v1 = X[n0][n1] v2 = X[v1][n2] v3 = X[n1][n2] v4 = X[n0][v3] return false if v2 != v4 end end end true end def check(e) cond1 = true N.times do |n| cond1 &= (X[n][e] == n) cond1 &= (X[e][n] == n) end cond2 = true N.times do |n| res = false N.times do |i| res |= ((X[n][i] == e) && (X[i][n] == e)) end cond2 &= res end cond1 && cond2 end if not f() puts 'No' exit end N.times do |e| if check(e) puts 'Yes' exit end end puts 'No'