DCEPC501 - Save Thy Toys


Leonard is very fond of buying rare and expensive science fiction toys. He keeps his collection in a sequential order of the date on which the toy was bought in a special closet so that his roomie Sheldon never gets hold of his toys. But because of his bad luck Leonard once loses a bet to Sheldon and Sheldon demands a share Leonard’s toys. Since Leonard doesn’t want to loose much money, he decides upon a strategy to reduce his loss to minimum.

Leonard, beginning from the first toy in his closet will pick some toys, say "x" toys in sequence. Sheldon will then pick the next "x" toys (Note that Sheldon picks equal no. of toys as picked by Leonard in his move unless the remaining toys are less than "x". In that case he picks all of the remaining). This will keep going on till no more toys are left in the closet for Leonard to pick. You are given the sequence of toys with their price. Help Leonard in maximizing the total price of all toys he picks.

Leonard in his each turn can either pick only 1 or 2 or 3 toys ("x" described above can take value either 1, 2 or 3).

Input

First line specifies T, the number of test cases.

Each test case contains N in the first line. Second line contains N integers as described above.

Output

Output 1 line for each test case giving the maximum possible value of the total sum of all toys Leonard picks.

Constraints

1<=T<=10

1<=N<=100000

1<=Price of toys<=1000000

Example

Input:
2
4
5 4 3 2
6
10 8 7 11 15 20

Output:
12
53

Explanation:

In 1st case, Leonard picks 3 toys in his first move with value 5,4,3 and Sheldon has no choice but to pick the last.
In 2nd case, Leonard picks 10, 8. Then Sheldon picks 7,11. And then Leonard picks the rest.


hide comments
smso: 2022-01-24 15:14:54

more testcases:
3
10
2 3 5 6 7 1 2 5 3 7
10
10 3 2 10 1 5 9 3 6 4
10
29 41 20 55 12 7 14 35 32 43

output:
30
41
193

robosapien: 2020-07-08 23:01:14

use long long..
good dp for beginners :)

deerawat: 2020-06-24 10:17:18

First time AC in a dp in a single go

kr4t0s123: 2020-06-05 11:35:13

use long long

bhavya_kala10: 2020-05-08 19:08:42

Nice question, AC in 2nd go, dry run gives nice insight for debugging.

Last edit: 2020-05-08 19:30:24
mrmajumder: 2020-04-27 10:47:17

Didn't get why when I do the same thing traversing from left to right, gives WA.
But if traversed from right to left, gets acc
Edit: Got it, because there may be some elements near the end that leonard may not take. But, if you go from left to right, you are actually taking those elements, ignoring elements from start, which may in some cases result in lesser sum.

Last edit: 2020-04-27 10:50:06
hemanth_1506: 2020-04-25 18:09:29

top down approach in one go AC :)

nadstratosfer: 2020-03-06 23:40:50

With this type of problems, pure Python typically won't pass. Here, top-down will crash PyPy due to current compilers not supporting setrecursionlimit() but bottom-up does get AC.

Last edit: 2020-03-16 01:20:46
danko_panko: 2020-03-05 23:36:36

Is it doable using python?

cpp219: 2020-02-08 10:01:03

my 60th :)


Added by:dce coders
Date:2012-04-18
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:ASM32-GCC MAWK BC C-CLANG C NCSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG COBOL COFFEE D-CLANG D-DMD DART ELIXIR FANTOM FORTH GOSU GRV JAVA JS-MONKEY JULIA KTLN NIM NODEJS OBJC OBJC-CLANG OCT PICO PROLOG PYPY PYPY3 PY_NBC R RACKET RUST CHICKEN SQLITE SWIFT UNLAMBDA VB.NET
Resource:Own Problem