結果
| 問題 |
No.3332 Consecutive Power Sum (Small)
|
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2025-11-02 22:12:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 406 ms / 2,025 ms |
| コード長 | 993 bytes |
| コンパイル時間 | 296 ms |
| コンパイル使用メモリ | 82,712 KB |
| 実行使用メモリ | 224,160 KB |
| 最終ジャッジ日時 | 2025-11-02 22:12:41 |
| 合計ジャッジ時間 | 12,742 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 52 |
ソースコード
n = int(input())
C = set()
for i in range(1, 10 ** 6+2):
if i * i > n:
break
if n % i == 0:
C.add(i)
C.add(n // i)
C = list(C)
C.sort()
Ans = []
for a in C:
b = n // a
if not b % 2 and not a % 2:
continue
if not b % 2:
k = a // 2
k_ = k + 1
l = k - b + 1
r = k_ + b - 1
if 1 <= l:
Ans.append((1, l, r))
else:
l = a - b // 2
r = a + b // 2
if 1 <= l:
Ans.append((1, l, r))
if a % 2 and b % 2:
k = a // 2
k_ = k + 1
l = k - b + 1
r = k_ + b - 1
if 1 <= l:
Ans.append((1, l, r))
for i in range(2, 61):
D = {0: 0}
pre = 0
r = 1
while pow(r, i) <= n:
now = pre + pow(r, i)
if now - n in D:
Ans.append((i, D[now-n]+1, r))
D[now] = r
pre = now
r += 1
Ans.sort()
print(len(Ans))
for e, l, r in Ans:
print(e, l, r)
kidodesu