結果
| 問題 |
No.376 立方体のN等分 (2)
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-04-16 00:34:55 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,059 bytes |
| コンパイル時間 | 266 ms |
| コンパイル使用メモリ | 82,656 KB |
| 実行使用メモリ | 59,492 KB |
| 最終ジャッジ日時 | 2025-04-16 00:36:24 |
| 合計ジャッジ時間 | 3,437 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 22 WA * 16 |
ソースコード
def factorize(n):
factors = []
i = 2
while i * i <= n:
if n % i == 0:
cnt = 0
while n % i == 0:
cnt += 1
n = n // i
factors.append((i, cnt))
i += 1
if n > 1:
factors.append((n, 1))
return factors
def main():
import sys
N = int(sys.stdin.readline())
if N == 1:
print("0 0")
return
factors = factorize(N)
current = [1, 1, 1]
for (p, e) in factors:
x = e // 3
rem = e - x
y = rem // 2
z = rem - y
part1 = p ** x
part2 = p ** y
part3 = p ** z
parts = sorted([part1, part2, part3])
current_sorted = sorted(current)
new_a = current_sorted[0] * parts[2]
new_b = current_sorted[1] * parts[1]
new_c = current_sorted[2] * parts[0]
current = sorted([new_a, new_b, new_c])
sum_current = sum(current)
tmin = sum_current - 3
tmax = N - 1
print(f"{tmin} {tmax}")
if __name__ == "__main__":
main()
lam6er