AT_KeioPC2025_p Making Arithmetic Progression

题目描述

给定一个长度为 $N$ 的整数序列 $A = (A_1, A_2, ..., A_N)$。你可以进行如下操作,操作次数可以为 $0$ 次或多次: - 选择一个满足 $1 \leq i \leq N$ 的整数 $i$,将 $A_i$ 乘以 $-1$。 操作结束后,将 $A$ 按升序排序。请判断是否存在一些操作方法,使得排序后的 $A$ 成为等差数列。如果存在,请输出所需操作的最小次数;如果不存在,输出 $-1$。 有 $T$ 个测试用例,请分别解答。

输入格式

输入由标准输入按如下格式给出: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每个测试用例的格式如下: > $N\ A_1\ A_2\ ...\ A_N$

输出格式

输出共 $T$ 行。第 $i$ 行输出第 $i$ 个用例使序列变为等差数列所需的最小操作次数,如果无解则输出 $-1$。

说明/提示

### 样例说明 1 第 $1$ 个测试用例中,可以对 $i=1$ 和 $i=3$ 进行操作,使得 $A = (6, 8, 2, 10, 4)$。按升序排列后为 $(2, 4, 6, 8, 10)$,这是一个等差数列。任意操作次数少于 $2$ 都无法达到,因此答案为 $2$。 第 $2$ 个测试用例中,无论如何操作,都无法使序列排序后成为等差数列。 ### 数据范围 - $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$ - 所有输入均为整数。 由 ChatGPT 5 翻译