CF1918D.Blocking Elements

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array of numbers a1,a2,,ana_1, a_2, \ldots, a_n . Your task is to block some elements of the array in order to minimize its cost. Suppose you block the elements with indices 1b1<b2<<bmn1 \leq b_1 < b_2 < \ldots < b_m \leq n . Then the cost of the array is calculated as the maximum of:

  • the sum of the blocked elements, i.e., ab1+ab2++abma_{b_1} + a_{b_2} + \ldots + a_{b_m} .
  • the maximum sum of the segments into which the array is divided when the blocked elements are removed. That is, the maximum sum of the following ( m+1m + 1 ) subarrays: [ 1,b111, b_1 − 1 ], [ b1+1,b21b_1 + 1, b_2 − 1 ], [ \ldots ], [ bm1+1,bm1b_{m−1} + 1, b_m - 1 ], [ bm+1,nb_m + 1, n ] (the sum of numbers in a subarray of the form [ x,x1x,x − 1 ] is considered to be 00 ).

For example, if n=6n = 6 , the original array is [ 1,4,5,3,3,21, 4, 5, 3, 3, 2 ], and you block the elements at positions 22 and 55 , then the cost of the array will be the maximum of the sum of the blocked elements ( 4+3=74 + 3 = 7 ) and the sums of the subarrays ( 11 , 5+3=85 + 3 = 8 , 22 ), which is max(7,1,8,2)=8\max(7,1,8,2) = 8 .

You need to output the minimum cost of the array after blocking.

输入格式

The first line of the input contains a single integer tt ( 1t300001 \leq t \leq 30\,000 ) — the number of queries.

Each test case consists of two lines. The first line contains an integer nn ( 1n1051 \leq n \leq 10^5 ) — the length of the array aa . The second line contains nn elements a1,a2,,ana_1, a_2, \ldots, a_n ( 1ai1091 \leq a_i \leq 10^9 ) — the array aa .

It is guaranteed that the sum of nn over all test cases does not exceed 10510^5 .

输出格式

For each test case, output a single number — the minimum cost of blocking the array.

输入输出样例

  • 输入#1

    3
    6
    1 4 5 3 3 2
    5
    1 2 3 4 5
    6
    4 1 6 3 10 7

    输出#1

    7
    5
    11

说明/提示

The first test case matches with the array from the statement. To obtain a cost of 77 , you need to block the elements at positions 22 and 44 . In this case, the cost of the array is calculated as the maximum of:

  • the sum of the blocked elements, which is a2+a4=7a_2 + a_4 = 7 .
  • the maximum sum of the segments into which the array is divided when the blocked elements are removed, i.e., the maximum of a1a_1 , a3a_3 , a5+a6=max(1,5,5)=5a_5 + a_6 = \max(1,5,5) = 5 .

So the cost is max(7,5)=7\max(7,5) = 7 .

In the second test case, you can block the elements at positions 11 and 44 .

In the third test case, to obtain the answer 1111 , you can block the elements at positions 22 and 55 . There are other ways to get this answer, for example, blocking positions 44 and 66 .

首页