AT_KeioPC2025_p.Making Arithmetic Progression
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 N 的整数序列 A=(A1,A2,...,AN)。你可以进行如下操作,操作次数可以为 0 次或多次:
- 选择一个满足 1≤i≤N 的整数 i,将 Ai 乘以 −1。
操作结束后,将 A 按升序排序。请判断是否存在一些操作方法,使得排序后的 A 成为等差数列。如果存在,请输出所需操作的最小次数;如果不存在,输出 −1。
有 T 个测试用例,请分别解答。
输入格式
输入由标准输入按如下格式给出:
T
case1
case2
⋮
caseT
每个测试用例的格式如下:
N A1 A2 ... AN
输出格式
输出共 T 行。第 i 行输出第 i 个用例使序列变为等差数列所需的最小操作次数,如果无解则输出 −1。
输入输出样例
输入#1
4 5 -6 8 -2 10 4 5 -2 -2 -1 4 -1 3 1 9 5 1 5
输出#1
2 -1 0 0
说明/提示
样例说明 1
第 1 个测试用例中,可以对 i=1 和 i=3 进行操作,使得 A=(6,8,2,10,4)。按升序排列后为 (2,4,6,8,10),这是一个等差数列。任意操作次数少于 2 都无法达到,因此答案为 2。
第 2 个测试用例中,无论如何操作,都无法使序列排序后成为等差数列。
数据范围
- 1≤T≤2×105
- 1≤N≤2×105
- −1013≤Ai≤1013
- 所有测试用例中 N 的总和不超过 2×105
- 所有输入均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?