結果
| 問題 | No.3776 Magic Square of Product |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-10-23 21:53:58 |
| 言語 | C# (.NET 10.0.402 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 500 ms / 2,500 ms |
| + 468µs | |
| コード長 | 1,252 bytes |
| 記録 | |
| コンパイル時間 | 5,602 ms |
| コンパイル使用メモリ | 170,628 KB |
| 実行使用メモリ | 45,568 KB |
| 最終ジャッジ日時 | 2026-10-23 21:54:22 |
| 合計ジャッジ時間 | 13,854 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge5_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 25 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (212 ミリ秒)。 main -> /home/judge/data/code/bin/Release/net10.0/main.dll main -> /home/judge/data/code/bin/Release/net10.0/publish/
ソースコード
#nullable enable
var f = new int[21];
f[0] = 1;
f.AsSpan()[1..].Fill(-1);
int F(int c)
{
if (f[c] >= 0) return f[c];
var res = 0;
for (var a11 = 0; a11 <= c; a11++)
{
for (var a12 = 0; a11 + a12 <= c; a12++) for (var a21 = 0; a11 + a21 <= c; a21++)
{
for (var a22 = 0; a12 + a22 <= c && a21 + a22 <= c; a22++)
{
var a13 = c - a11 - a12;
var a23 = c - a21 - a22;
var a31 = c - a11 - a21;
var a32 = c - a12 - a22;
var x = c - a13 - a23;
var y = c - a31 - a32;
if (x >= 0 && x == y) res++;
}
}
}
return f[c] = res;
}
const int Mod = 998244353;
var ans = new List<long>();
var t = int.Parse(Console.ReadLine()!);
while (t-- > 0)
{
var k = int.Parse(Console.ReadLine()!);
var tns = 1L;
for (var i = 2; i * i <= k; i++)
{
var c = 0;
while (true)
{
var (p, q) = int.DivRem(k, i);
if (q != 0) break;
(k, c) = (p, c + 1);
}
tns = tns * F(c) % Mod;
}
if (k > 1) tns = tns * F(1) % Mod;
ans.Add(tns);
}
Console.WriteLine(string.Join(Environment.NewLine, ans));