難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Half Selection Game

作成者 loop0919

テスター mackerel38

難易度(作成者設定) Lv.6

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

問題文

正整数 NN と、長さ NN の数列 A=(A1,A2,⋯ ,AN)A = (A_1, A_2, \cdots, A_N) があります。

Alice と Bob はゲームを行います。ゲームは以下の手続きで進行します。

  1. Alice は整数 XX を一つ選び、 Bob に知らせる。
  2. Alice を先手として、 Alice と Bob は以下の操作を AA の長さが 11 になるまで交互に行う。ここで mm を操作を行う直前の AA の長さとする。
    • 手番のプレイヤーが (A1,A2,⋯ ,A⌊m/2⌋)(A_1, A_2, \cdots, A_{\lfloor m/2 \rfloor}) か (A⌊m/2⌋+1,A⌊m/2⌋+2,⋯ ,Am)(A_{\lfloor m/2 \rfloor + 1}, A_{\lfloor m/2 \rfloor + 2}, \cdots, A_m) のどちらか一方の数列を選ぶ。 AA をその選んだ数列に置き換える。
  3. 最後に AA に残った唯一の要素を YY とする。最終的な スコア を ∣X−Y∣|X - Y| と定める。

Alice の目標はスコアをできるだけ小さくすることであり、 Bob の目標はスコアをできるだけ大きくすることです。
両者とも最善を尽くしたときにおけるスコアの値を求めてください。

TT 個のテストケースが与えられるので、それぞれについて答えてください。

制約

  • 1≤T≤1051 \le T \le 10^5
  • 2≤N≤3×1052 \le N \le 3 \times 10^5
  • すべてのテストケースにおける NN の総和は 3×1053 \times 10^5 以下
  • 1≤Ai≤109(1≤i≤N)1 \le A_i \le 10^9 \enspace (1 \le i \le N)
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

TT case1\mathrm{case}_1 case2\mathrm{case}_2 ⋮\vdots caseT\mathrm{case}_T

各テストケース caset (1≤t≤T)\mathrm{case}_t ~ (1 \leq t \leq T) は以下の形式で与えられる。

NN A1A2…ANA_1 \quad A_2 \quad \ldots \quad A_N

出力

TT 行出力せよ。 tt 行目には tt 番目のテストケースについての答えを出力せよ。

サンプル 1

入力

3
4
1 5 2 4
3
1000000000 10 1
7
63 5 96 63 22 8 97

出力

1
0
7

11 番目のテストケースについて、例えば以下の手続きでゲームが進行します。

  • Alice が X=3X = 3 を選び、 Bob に知らせる。
  • Alice が (1,5)(1, 5) と (2,4)(2, 4) のうち、後者を選ぶ。 A=(2,4)A = (2, 4) に更新される。
  • Bob が (2)(2) と (4)(4) のうち、前者を選ぶ。 A=(2)A = (2) に更新される。
  • AA の長さが 11 になったので操作を終了する。 AA の唯一の要素 YY は 22 であるため、スコアは ∣X−Y∣=1|X - Y| = 1 である。