def solve():
n = int(input())
l = [int(x) for x in input().split()]
l = [[1, i] for i in l]
s = 0
for i in range(n - 1):
if l[i][1] == 0 or l[i][1]<l[i][0]:
continue
elif l[i][1] - l[i][0] >=2:
s += 1
else:
if l[i][1]<l[i+1][1]:
if l[i][1]<=2:
l[i+1][0]=3
else: if l[i][1]==3:
if l[i+1][1]==4:
l[i+1][1]=2
else:
l[i + 1][1] = min(l[i][0]-1, l[i + 1][1])
s += 1
if l[n-1][1]<l[n-1][0]:
s+=0
else:
s += 1
print(s)
for w in range(int(input())):
solve()
580A- Kefa and First Steps | 1472B- Fair Division |
996A - Hit the Lottery | MSNSADM1 Football |
MATCHES Playing with Matches | HRDSEQ Hard Sequence |
DRCHEF Doctor Chef | 559. Maximum Depth of N-ary Tree |
821. Shortest Distance to a Character | 1441. Build an Array With Stack Operations |
1356. Sort Integers by The Number of 1 Bits | 922. Sort Array By Parity II |
344. Reverse String | 1047. Remove All Adjacent Duplicates In String |
977. Squares of a Sorted Array | 852. Peak Index in a Mountain Array |
461. Hamming Distance | 1748. Sum of Unique Elements |
897. Increasing Order Search Tree | 905. Sort Array By Parity |
1351. Count Negative Numbers in a Sorted Matrix | 617. Merge Two Binary Trees |
1450. Number of Students Doing Homework at a Given Time | 700. Search in a Binary Search Tree |
590. N-ary Tree Postorder Traversal | 589. N-ary Tree Preorder Traversal |
1299. Replace Elements with Greatest Element on Right Side | 1768. Merge Strings Alternately |
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |