結果
問題 | No.1330 Multiply or Divide |
ユーザー | Kude |
提出日時 | 2021-01-08 22:04:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 227 ms / 2,000 ms |
コード長 | 486 bytes |
コンパイル時間 | 286 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 119,680 KB |
最終ジャッジ日時 | 2024-11-16 19:19:55 |
合計ジャッジ時間 | 5,462 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 46 |
ソースコード
n, m, p = map(int, input().split()) a = list(map(int, input().split())) mx = max(a) t = m // mx + 1 if t == 1: print(1) exit() q = [] for ai in a: cnt = 1 while ai % p == 0: cnt += 1 ai //= p if ai == 1: continue q.append((ai, cnt)) if not q: print(-1) exit() dp = [0] * 100000 dp[0] = 1 for i in range(100000): if dp[i] >= t: print(i + 1) break for x, c in q: dp[i + c] = max(dp[i + c], dp[i] * x)