結果
問題 | No.27 板の準備 |
ユーザー |
|
提出日時 | 2017-06-29 13:42:12 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 296 ms / 5,000 ms |
コード長 | 783 bytes |
コンパイル時間 | 96 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,672 KB |
最終ジャッジ日時 | 2024-12-26 13:03:45 |
合計ジャッジ時間 | 5,147 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
コンパイルメッセージ
Syntax OK
ソースコード
def ascan; gets.split.map(&:to_i); end def scan; gets.to_i; end require 'prime' ll = ascan @dp={} def makeable(l,boards) return 0 if l==0 key = [l] return @dp[key] if @dp[key] best = 9999 boards.each{|b| next if l<b m = makeable(l-b, boards) return @dp[key]=false if !m best = [best,m].min } return @dp[key]=best+1 end best = 5e15.to_i 1.upto(28){|a| (a+1).upto(29){|b| (b+1).upto(30){|c| @dp={} cost = 0 x = [a,b,c] ll.each{|l| m = makeable(l,x) if !m cost = nil; break end cost += m } best = [best,cost].min if cost } } } p best