CF1416E.Split
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
One day, BThero decided to play around with arrays and came up with the following problem:
You are given an array a , which consists of n positive integers. The array is numerated 1 through n . You execute the following procedure exactly once:
- You create a new array b which consists of 2n positive integers, where for each 1≤i≤n the condition b2i−1+b2i=ai holds. For example, for the array a=[6,8,2] you can create b=[2,4,4,4,1,1] .
- You merge consecutive equal numbers in b . For example, b=[2,4,4,4,1,1] becomes b=[2,4,1] .
Find and print the minimum possible value of ∣b∣ (size of b ) which can be achieved at the end of the procedure. It can be shown that under the given constraints there is at least one way to construct b .
输入格式
The first line of the input file contains a single integer T ( 1≤T≤5⋅105 ) denoting the number of test cases. The description of T test cases follows.
The first line of each test contains a single integer n ( 1≤n≤5⋅105 ).
The second line contains n space-separated integers a1 , a2 , ..., an ( 2≤ai≤109 ).
It is guaranteed that ∑n over all test cases does not exceed 5⋅105 .
输出格式
For each test case, print a single line containing one integer — the minimum possible value of ∣b∣ .
输入输出样例
输入#1
3 3 6 8 2 1 4 3 5 6 6
输出#1
3 1 2