結果

問題 No.2121 帰属関係と充足可能性
ユーザー kotatsugame
提出日時 2022-11-04 22:17:31
言語 Ruby
(3.4.1)
結果
AC  
実行時間 110 ms / 2,000 ms
コード長 591 bytes
コンパイル時間 372 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,416 KB
最終ジャッジ日時 2024-07-18 22:16:08
合計ジャッジ時間 5,778 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 49
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N=gets.to_i
A=gets.split.map &:to_i
if N==5
  puts A[0]==A[1]&&A[5]!=A[2]&&A[2]!=A[1]&&A[2]!=A[3]&&A[2]!=A[4]&&A[0]!=A[5] ? "YES" : "NO"
  exit
end
v=[]
N.times{
  v=(0...2**v.size).map{|i|
    t=[]
    (0...v.size).each{|j|i[j]==1&&t<<v[j]}
    t
  }
}
sv=v.map &:to_s
puts [*0...v.size].repeated_permutation(3).any?{|m|
  mA0=v[m[A[0]]].map &:to_s
  mA1=v[m[A[1]]].map &:to_s
  mA2=v[m[A[2]]].map &:to_s
  sv.all?{|x|!mA0.include?(x)||mA1.include?(x)}&&
  mA2.include?(sv[m[A[1]]])&&
  mA2.include?(sv[m[A[3]]])&&
  mA2.include?(sv[m[A[4]]])&&
  mA0.include?(sv[m[A[5]]])
} ? "YES" : "NO"
0