結果
| 問題 |
No.3332 Consecutive Power Sum (Small)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-11-02 22:19:56 |
| 言語 | C# (.NET 8.0.404) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,204 bytes |
| コンパイル時間 | 8,233 ms |
| コンパイル使用メモリ | 170,624 KB |
| 実行使用メモリ | 190,984 KB |
| 最終ジャッジ日時 | 2025-11-02 22:20:17 |
| 合計ジャッジ時間 | 21,162 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 17 WA * 35 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (114 ミリ秒)。 main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
#nullable enable
var n = long.Parse(Console.ReadLine()!);
var ans = new List<(int, long, long)>();
for (var d = 1L; d <= 200000; d++)
{
var ld2 = n * 2 - d * d - d;
if (ld2 < 0 || ld2 % (d * 2) != 0) continue;
var l = ld2 / (d * 2);
ans.Add((1, l + 1, l + d));
}
long SafePower(long x, int p)
{
var lowerThan = n + 1;
var res = 1L;
while (p > 0)
{
if ((p & 1) > 0)
{
if (res >= lowerThan / x) return -1;
res *= x;
if (p == 1) return res;
}
if (x >= lowerThan / x) return -1;
x *= x;
p >>= 1;
}
return res;
}
for (var e = 2; e <= 40; e++)
{
var dictionary = new Dictionary<long, long>() { [0] = 0 };
var r = 1L;
var last = 0L;
while (true)
{
var re = SafePower(r, e);
if (re < 0) break;
last += re;
if (dictionary.TryGetValue(last - n, out var l)) ans.Add((e, l + 1, r));
dictionary[last] = r;
r++;
}
}
ans = ans.Distinct().ToList();
ans.Sort();
Console.WriteLine(ans.Count);
if (ans.Count > 0) Console.WriteLine(string.Join(Environment.NewLine, ans.Select(e => e.Item1 + " " + e.Item2 + " " + e.Item3)));