結果

問題 No.376 立方体のN等分 (2)
ユーザー lam6er
提出日時 2025-04-16 00:36:53
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,059 bytes
コンパイル時間 257 ms
コンパイル使用メモリ 82,220 KB
実行使用メモリ 59,296 KB
最終ジャッジ日時 2025-04-16 00:41:11
合計ジャッジ時間 3,857 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 22 WA * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

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()
0