CF1637C.Andrew and Stones
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Andrew has n piles with stones. The i -th pile contains ai stones. He wants to make his table clean so he decided to put every stone either to the 1 -st or the n -th pile.
Andrew can perform the following operation any number of times: choose 3 indices 1≤i<j<k≤n , such that the j -th pile contains at least 2 stones, then he takes 2 stones from the pile j and puts one stone into pile i and one stone into pile k .
Tell Andrew what is the minimum number of operations needed to move all the stones to piles 1 and n , or determine if it's impossible.
输入格式
The input contains several test cases. The first line contains one integer t ( 1≤t≤10000 ) — the number of test cases.
The first line for each test case contains one integer n ( 3≤n≤105 ) — the length of the array.
The second line contains a sequence of integers a1,a2,…,an ( 1≤ai≤109 ) — the array elements.
It is guaranteed that the sum of the values n over all test cases does not exceed 105 .
输出格式
For each test case print the minimum number of operations needed to move stones to piles 1 and n , or print −1 if it's impossible.
输入输出样例
输入#1
4 5 1 2 2 3 6 3 1 3 1 3 1 2 1 4 3 1 1 2
输出#1
4 -1 1 -1
说明/提示
In the first test case, it is optimal to do the following:
- Select (i,j,k)=(1,2,5) . The array becomes equal to [2,0,2,3,7] .
- Select (i,j,k)=(1,3,4) . The array becomes equal to [3,0,0,4,7] .
- Twice select (i,j,k)=(1,4,5) . The array becomes equal to [5,0,0,0,9] . This array satisfy the statement, because every stone is moved to piles 1 and 5 .
There are 4 operations in total.In the second test case, it's impossible to put all stones into piles with numbers 1 and 3 :
- At the beginning there's only one possible operation with (i,j,k)=(1,2,3) . The array becomes equal to [2,1,2] .
- Now there is no possible operation and the array doesn't satisfy the statement, so the answer is −1 .
In the third test case, it's optimal to do the following:
- Select (i,j,k)=(1,2,3) . The array becomes equal to [2,0,2] . This array satisfies the statement, because every stone is moved to piles 1 and 3 .
The is 1 operation in total.In the fourth test case, it's impossible to do any operation, and the array doesn't satisfy the statement, so the answer is −1 .