結果
| 問題 |
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