結果
| 問題 | No.376 立方体のN等分 (2) | 
| コンテスト | |
| ユーザー |  lam6er | 
| 提出日時 | 2025-04-16 00:41:22 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 1,059 bytes | 
| コンパイル時間 | 230 ms | 
| コンパイル使用メモリ | 82,012 KB | 
| 実行使用メモリ | 59,712 KB | 
| 最終ジャッジ日時 | 2025-04-16 00:45:13 | 
| 合計ジャッジ時間 | 3,473 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| 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()
            
            
            
        