結果
| 問題 | No.761 平均値ゲーム |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2026-09-30 20:23:23 |
| 言語 | C# (.NET 10.0.400 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 54 ms / 2,000 ms |
| + 567µs | |
| コード長 | 1,143 bytes |
| 記録 | |
| コンパイル時間 | 5,406 ms |
| コンパイル使用メモリ | 172,800 KB |
| 実行使用メモリ | 52,556 KB |
| 最終ジャッジ日時 | 2026-09-30 20:23:49 |
| 合計ジャッジ時間 | 16,507 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 100 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (181 ミリ秒)。 main -> /home/judge/data/code/bin/Release/net10.0/main.dll main -> /home/judge/data/code/bin/Release/net10.0/publish/
ソースコード
using System;
using static System.Console;
using System.Linq;
using System.Collections.Generic;
class Program
{
static int NN => int.Parse(ReadLine());
static long[] NList => ReadLine().Split().Select(long.Parse).ToArray();
public static void Main()
{
Solve();
}
static void Solve()
{
var n = NN;
var a = NList;
var cum = new long[n + 1];
for (var i = 0; i < n; ++i) cum[i + 1] = cum[i] + a[i];
WriteLine(IsWin(0, n, a, cum) ? "First" : "Second");
}
static bool IsWin(int l, int r, long[] a, long[] cum)
{
if (l == r) return false;
if (r - l == 1) return true;
if (a[l] == a[r - 1]) return true;
var ok = r - 1;
var ng = -1;
while (ok - ng > 1)
{
var mid = (ok + ng) / 2;
if ((r - l) * a[mid] >= cum[r] - cum[l]) ok = mid;
else ng = mid;
}
if (l < ok)
{
if (!IsWin(l, ok, a, cum)) return true;
}
if (ok < r)
{
if (!IsWin(ok, r, a, cum)) return true;
}
return false;
}
}