結果

問題 No.3332 Consecutive Power Sum (Small)
コンテスト
ユーザー detteiuu
提出日時 2025-11-02 21:44:40
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 456 ms / 2,025 ms
コード長 768 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 368 ms
コンパイル使用メモリ 82,604 KB
実行使用メモリ 263,024 KB
最終ジャッジ日時 2025-11-02 21:44:55
合計ジャッジ時間 15,069 ms
ジャッジサーバーID
(参考情報)
judge6 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 52
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

def divisor(n):
    ans = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            ans.append(i)
            if i*i != n:
                ans.append(n//i)
    return ans

N = int(input())

div = divisor(N)
ans = []
for d in div:
    if d%2 == 0:
        continue
    l, r = d//2, d//2+1
    if N//d <= l:
        ans.append((1, l-N//d+1, r+N//d-1))
    if 1 <= N//d-d//2:
        ans.append((1, N//d-d//2, N//d+d//2))

for E in range(2, 41):
    D = dict()
    cum = [0]
    D[0] = 0
    for i in range(1, 1<<60):
        cum.append(cum[-1]+i**E)
        if cum[-1]-N in D:
            ans.append((E, D[cum[-1]-N]+1, i))
        D[cum[-1]] = i
        if N < cum[-1]-cum[-2]:
            break

ans.sort()
print(len(ans))
for a in ans:
    print(*a)
0