原始问题:
游游的数组操作:求最少操作次数使元素在指定范围内
解析:对于每组用例,首先需要判断是否可以通过有限次数的操作使得数组中的每个元素都在[l, r]范围内。如果可以,输出最少的操作次数;否则输出-1。
代码如下:
def min_operations(n, l, r):
a = list(map(int, input().split()))
operations = []
for i in range(n):
diff = abs(a[i] - l) + abs(a[i] - r)
if diff == 0:
return 0
else:
operations.append(diff // 2)
return sum(operations)
t = int(input())
for _ in range(t):
n, l, r = map(int, input().split())
result = min_operations(n, l, r)
print(result)
Prev:"求解长度为n的排列中,相邻元素和不为素数的排列个数(C++实现)"