結果
問題 | No.1330 Multiply or Divide |
ユーザー |
![]() |
提出日時 | 2022-02-28 07:28:59 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 353 ms / 2,000 ms |
コード長 | 643 bytes |
コンパイル時間 | 85 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 26,240 KB |
最終ジャッジ日時 | 2024-07-06 10:14:21 |
合計ジャッジ時間 | 8,776 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 46 |
コンパイルメッセージ
Main.rb:50: warning: ambiguous first argument; put parentheses or a space even after `-' operator Syntax OK
ソースコード
N, M, P = gets.split.map(&:to_i)A = gets.split.map(&:to_i)AM = A.maxvalues = Array.new(Math.log2(M).ceil + 10, 0)A.each do |a|cost = 1e = awhile e % P == 0e /= Pcost += 1endnext if e == 1if values[cost] < evalues[cost] = eendendL = Math.log2(M).ceil ** 2 + 10dp = Array.new(L + 1, 0)dp[0] = 1values.each.with_index do |e, cost|next if e == 00.upto(L) do |i|next if dp[i] == 0next if dp[i] > Mnv = i + costx = dp[i] * eif dp[nv] < xdp[nv] = xendendend0.upto(L) do |cost|if dp[cost] * AM > Mputs cost + 1exitendendputs -1