問題一覧 > 通常問題

No.2648 [Cherry 6th Tune D] 一次元の馬

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 139
作問者 : KazunKazun / テスター : hirayuu_ychirayuu_yc
0 ProblemId : 9848 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-02-23 21:36:30

問題文

数直線上に $N$ 頭の馬がいる. これらの馬は $1,2, \dots, N$ と番号が付けられている.

最初, 馬 $i$ は座標 $A_i$ にいる.

チェリーちゃんが笛を鳴らすと, $N$ 頭の馬は同時に以下の行動を行う.

  • 笛が鳴ったとき, 馬 $i$ が座標 $x$ にいるとする. このとき, 馬 $i$ は座標 $(x+i)$ に移動する.

チェリーちゃんが $0$ 回以上の任意の回数だけ笛を鳴らすとき, 以下を満たすようなことはあり得るか? あり得るならば, そのような状況になるまでにチェリーちゃんが鳴らす笛の回数の最小値を求めよ.

  • 馬 $i$ がいる座標を $X_i$ とする. このとき, $X_1 \lt X_2 \lt \dots \lt X_{N-1} \lt X_N$ を満たす.

制約

  • $1 \leq T \leq 10^5$.
  • 各テストケースに対する制約.
    • $2 \leq N \leq 2 \times 10^5$.
    • $0 \leq A_i \leq 10^9 \quad (1 \leq i \leq N)$.
  • テストファイルに対する制約.
    • $T$ 個のテストケースにおける $N$ の総和は $2 \times 10^5$ 以下である.
  • 入力は全て整数である.

入力

$T$
${\rm Testcase}_1$
${\rm Testcase}_2$
$\vdots$
${\rm Testcase}_T$
なお, 各テストケースは以下の形式で与えられる.
$N$
$A_1$ $A_2$ $\cdots$ $A_N$

出力

出力は $T$ 行からなる. 第 $t~(1 \leq t \leq T)$ 行目には, 第 $t$ テストケースに対する解答を以下の形式で出力せよ.

  • いくら笛を鳴らしても条件を満たさないならば, -1 を出力せよ. 存在するならば, 条件を満たすまでに笛を鳴らす回数の最小値を整数で出力せよ.

最後に改行も忘れないこと.

サンプル

サンプル1
入力
4
3
3 1 2
5
1 2 3 4 5
4
46 46 46 46
10
886822852 554802233 259460418 345136263 8466085 424914285 852474622 856826548 201867 777749594
出力
3
0
1
856624682

  • [第 $1$ テストケース] チェリーちゃんが $3$ 回笛を鳴らすとする. このとき, 各馬は次のように移動する.
    • $1$ 回目の笛が鳴ると, 馬 $1$ は座標 $3$ から座標 $4$ に, 馬 $2$ は座標 $1$ から座標 $3$ に, 馬 $3$ は座標 $2$ から座標 $5$ へ移動する.
    • $2$ 回目の笛が鳴ると, 馬 $1$ は座標 $4$ から座標 $5$ に, 馬 $2$ は座標 $3$ から座標 $5$ に, 馬 $3$ は座標 $5$ から座標 $8$ へ移動する.
    • $3$ 回目の笛が鳴ると, 馬 $1$ は座標 $5$ から座標 $6$ に, 馬 $2$ は座標 $5$ から座標 $7$ に, 馬 $3$ は座標 $8$ から座標 $11$ へ移動する.
    $3$ 回笛を鳴らした後, $X_1=6, X_2=7, X_3=11$ で, $X_1 \lt X_2 \lt X_3$ を満たす. また, 笛を鳴らす回数が $3$ 回未満だと $X_1 \lt X_2 \lt X_3$ は満たさない. よって, $3$ 回が正解である.

  • [第 $2$ テストケース] 笛を鳴らさずとも $X_1 \lt X_2 \lt \dots \lt X_N$ となっている可能性がある.
  • [第 $3$ テストケース] $X_1=X_2=X_3=X_4$ は条件を満たさないことに注意せよ.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。