AT_KeioPC2025_p Making Arithmetic Progression

Description

長さ $ N $ の整数列 $ A = (A_1, A_2, ..., A_N) $ が与えられます。あなたは以下の操作を $ 0 $ 回以上行うことができます。 - $ 1 \leq i \leq N $ を満たす整数 $ i $ を一つ選び、 $ A_i $ を $ -1 $ 倍する。 全ての操作が終了した後に、 $ A $ を昇順に並び替えます。このときに $ A $ が等差数列となっているような操作方法が存在するか判定し、存在する場合は操作回数の最小値を求めてください。 $ T $ 個のテストケースが与えられるので、それぞれについて解いてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ 各テストケースは以下の形式で与えられる。 > $ N $ $ A_1\ A_2\ ...\ A_N $

Output Format

$ T $ 行出力せよ。 $ i $ 行目には $ \mathrm{case}_i $ において列を等差数列にすることができるならば操作回数の最小値を、できないならば `-1` を出力せよ。

Explanation/Hint

### Sample Explanation 1 $ 1 $ 番目のテストケースでは、 $ i = 1 $ と $ i = 3 $ で操作を行うことで $ A = (6, 8, 2, 10, 4) $ となります。 昇順に並び替えると $ (2, 4, 6, 8, 10) $ となり、これは等差数列です。 $ 1 $ 回以下の操作で等差数列とすることはできないため、答えは $ 2 $ になります。 $ 2 $ 番目のテストケースでは、どのように操作しても昇順に並び替えた列を等差数列とすることができません。 ### Constraints - $ 1 \leq T \leq 2 \times 10^5 $ - $ 1 \leq N \leq 2 \times 10^5 $ - $ -{10}^{13} \leq A_i \leq 10^{13} $ - すべてのテストケースにおける $ N $ の総和は $ 2 \times 10^5 $ 以下 - 入力はすべて整数