結果

問題 No.334 門松ゲーム
ユーザー TANIGUCHI KousukeTANIGUCHI Kousuke
提出日時 2020-02-18 11:53:06
言語 Ruby
(3.4.1)
結果
AC  
実行時間 109 ms / 2,000 ms
コード長 377 bytes
コンパイル時間 85 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,544 KB
最終ジャッジ日時 2024-10-06 15:28:45
合計ジャッジ時間 2,151 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 13
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N = gets.to_i
A = gets.split.map(&:to_i)

def dfs(used)
  unused= N.times.select{|i| used[i].zero? }
  return false if unused.size < 3
  
  unused.combination(3)
    .select{|a,b,c| (A[a] < A[b] && A[c] < A[b] && A[a] != A[c]) || (A[a] > A[b] && A[c] > A[b] && A[a] != A[c]) }
    .find{|a,b,c| !dfs(used | (1 << a) | (1 << b) | (1 << c)) }
end
puts (dfs(0) || [-1]).join(' ')
0