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 翻译