結果
問題 |
No.1150 シュークリームゲーム(Easy)
|
ユーザー |
|
提出日時 | 2025-07-01 00:52:15 |
言語 | C# (.NET 8.0.404) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,133 bytes |
コンパイル時間 | 7,709 ms |
コンパイル使用メモリ | 169,940 KB |
実行使用メモリ | 216,972 KB |
最終ジャッジ日時 | 2025-07-01 00:52:32 |
合計ジャッジ時間 | 14,621 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 WA * 11 RE * 4 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (101 ミリ秒)。 main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[] NMi => ReadLine().Split().Select(c => int.Parse(c) - 1).ToArray(); static int[][] NMap(int n) => Enumerable.Repeat(0, n).Select(_ => NMi).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var c = NList; var (s, t) = (c[0] - 1, c[1] - 1); var a = NList; var cum = new long[n * 2 + 1]; var all = 0L; for (var i = 0; i < n; ++i) { cum[i + 1] = cum[i] + a[i]; all += a[i]; } for (var i = 0; i + 1 < n; ++i) cum[i + n + 1] = cum[i + n] + a[i]; var sl = (n + 1) / 2; var max = 0L; if (s > t) { if ((s - t) % 2 == 0 && (t + n - s) % 2 == 0) { var mid = (s + t) / 2; max = Math.Max(cum[mid + sl] - cum[mid], cum[mid + sl + 1] - cum[mid + 1]); } else if ((s - t) % 2 == 0) { var mid = (s + t) / 2; max = cum[mid + sl] - cum[mid]; } else { var mid = (s + t) / 2 + 1; max = cum[mid + sl] - cum[mid]; } } else { if ((s + n - t) % 2 == 0 && (t - s) % 2 == 0) { var mid = (s + n + t) / 2; max = Math.Max(cum[mid + sl] - cum[mid], cum[mid + sl + 1] - cum[mid + 1]); } else if ((s + n - t) % 2 == 0) { var mid = s + (s + n + t) / 2; max = cum[mid + sl] - cum[mid]; } else { var mid = s + (s + n + t) / 2 + 1; max = cum[mid + sl] - cum[mid]; } } WriteLine(max - all + max); } }