結果
| 問題 | No.3235 巡回減算 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-08-15 22:26:27 |
| 言語 | C# (.NET 8.0.404) |
| 結果 |
AC
|
| 実行時間 | 1,090 ms / 10,000 ms |
| コード長 | 1,130 bytes |
| コンパイル時間 | 9,348 ms |
| コンパイル使用メモリ | 171,284 KB |
| 実行使用メモリ | 186,496 KB |
| 最終ジャッジ日時 | 2025-08-15 22:26:58 |
| 合計ジャッジ時間 | 16,201 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (131 ミリ秒)。 /home/judge/data/code/Main.cs(11,3): warning CS8321: ローカル関数 'I' は宣言されていますが、一度も使用されていません [/home/judge/data/code/main.csproj] main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
#nullable enable
#region
var _input = Array.Empty<string>();
var _iter = 0;
string String()
{
while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Split(' '), 0);
return _input[_iter++];
}
T I<T>() where T : IParsable<T> => T.Parse(String(), null);
#endregion
const int n = 8;
const int mask = n - 1;
var az = new int[n][];
for (var i = 0; i < n; i++)
{
var a = new int[n];
var str = String();
for (var j = 0; j < n; j++) a[j] = str[j] - '0';
az[i] = a;
}
var ans = false;
var s = az[0].AsSpan().ToArray();
void Add(int i, int shift)
{
var a = az[i];
for (var j = 0; j < n; j++)
{
var k = (j + shift) & mask;
s[k] += a[j];
}
}
void Sub(int i, int shift)
{
var a = az[i];
for (var j = 0; j < n; j++)
{
var k = (j + shift) & mask;
s[k] -= a[j];
}
}
void S(int i)
{
if (i == n)
{
ans |= s.Max() == 0;
return;
}
for (var shift = 0; shift < n; shift++)
{
Sub(i, shift);
if (s.Min() >= 0) S(i + 1);
Add(i, shift);
}
}
S(1);
Console.WriteLine(ans ? "Yes" : "No");