結果
| 問題 |
No.555 世界史のレポート
|
| コンテスト | |
| ユーザー |
ckawatak
|
| 提出日時 | 2019-02-01 07:42:52 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,082 bytes |
| コンパイル時間 | 211 ms |
| コンパイル使用メモリ | 82,988 KB |
| 実行使用メモリ | 54,496 KB |
| 最終ジャッジ日時 | 2024-11-21 07:56:41 |
| 合計ジャッジ時間 | 1,719 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 WA * 17 |
ソースコード
N = int(input())
C,V = list(map(int, input().split(' ')))
def factorize(n):
i = 2
nn = n
factors = {}
while i * i <= n:
if nn % i == 0:
nn /= i
if i in factors:
factors[i] = factors[i] + 1
else:
factors[i] = 1
else:
i = i + 1
if nn != 1:
nn = int(nn)
if nn in factors:
factors[nn] = factors[nn] + 1
else:
factors[nn] = 1
return factors
def find(n):
factors = factorize(n)
minimum = float('inf')
for factor in factors:
cost = 0
rest = C + V * ((n // (factor ** factors[factor]))-1)
if factor % 2 == 1:
cost = C + V * (factor-1) + rest
else:
cost = (C + V) * factors[factor] + rest
minimum = min(minimum, cost)
return min(minimum, C + V * (N-1))
minimum = float('inf')
minimum = min(minimum, find(N))
minimum = min(minimum, find(N+1))
minimum = min(minimum, find(N+2))
print(minimum)
ckawatak