結果
| 問題 |
No.334 門松ゲーム
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-01-15 23:12:53 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 119 ms / 2,000 ms |
| コード長 | 1,310 bytes |
| コンパイル時間 | 43 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 12,544 KB |
| 最終ジャッジ日時 | 2024-09-19 19:27:31 |
| 合計ジャッジ時間 | 2,128 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 |
コンパイルメッセージ
Main.rb:57: warning: ambiguous first argument; put parentheses or a space even after `-' operator Syntax OK
ソースコード
# Here your code !
N=gets.to_i
@ks=gets.split.map(&:to_i)
# p @ks
@memo={}
def go(mask, first)
# puts "start: mask=#{mask}"
if @memo[mask] != nil
return @memo[mask]
end
result = false
(0...N).each{|a|
if(mask[a])
next
end
mask[a]=true
(a+1...N).each{|b|
if(mask[b])
next
end
mask[b]=true
(b+1...N).each{|c|
if(mask[c])
next
end
mask[c]=true
#puts "c: mask=#{mask}, a,b,c=#{a}, #{b}, #{c}"
if @ks[a]==@ks[b] || @ks[b]==@ks[c] || (@ks[b]!=([@ks[a],@ks[b],@ks[c]]).max && @ks[b]!=([@ks[a],@ks[b],@ks[c]]).min)
mask[c]=nil
next
end
ret = go(mask, false)
if ret == false
result = true
if first
puts [a,b,c].join(" ")
exit
end
end
mask[c]=nil
}
mask[b]=nil
}
mask[a]=nil
}
# puts "end: mask=#{mask}, result=#{result}"
@memo[mask]=result
return result
end
go(Array.new(N,nil), true)
puts -1