A92779.Alice打扰别人睡觉

普及-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

众所周知,人在睡觉的时候头上会出现一串"Z"字往上飘,而有些人的"Z"居然会往下飘。如果这些"Z"字被人摘走了那那个人就会被吵醒,Alice非常喜欢摘走这些人的"Z"字,然后把这些人吵醒。
大家都趴在一张桌子上睡觉,大家头上"Z"字的飘起高度可以形成一个一维向量数组 {a0,a1,a2,a3...an}\{ a_0, a_1, a_2, a_3... a_n \} ,Alice可以一次性吵醒一个区间 [l,r](0lrn)[ l , r ] (0≤l≤r≤n) 内的所有人,这些人对应的向量会被移除这个数组,Alice是一个超级大坏蛋,所以她可以无限次进行这种恶心人的行为,也可以一次都不进行。
Alice怎么这么坏啊!你要写一段程序得到Alice吵醒哪些人之后能让数组留下的向量和的模最大。
(一维向量是‌只有一个分量的向量‌,通常用单个数值表示,其方向由数值的正负号决定(正数表示一个方向,负数表示相反方向),大小(模)为该数值的绝对值。‌‌)

输入格式

一共 2n+12n+1 行,第 11 行表示有 nn ( 2n5002≤n≤500 )组测试用例。
接下来每 22 行是一个测试用例
每个测试的第 11 行有 11 个数 sizesize ( 1size5001≤size≤500 ),sizesize 表示这个桌子上有几个人在睡觉。
22 行有 sizesize 个数,表示这些人的"Z"会飘多高的一维向量数组。( 1105一维向量1105-1⋅10^5≤一维向量≤1⋅10^5 )

输出格式

对于每组测试数据,新起一行,共 nn 行。
每一行输出一个整数代表Alice这么做后的最大的向量和的模。

输入输出样例

  • 输入#1

    2
    5
    1 2 -2 -3 4
    7
    2 5 -5 1 1 1 -6

    输出#1

    7
    11

说明/提示

对于第一组测试数据,把区间 [2,3][2, 3] 的人叫醒,得到新数组的向量和的模为 77 ,此时是向量和的模长最大的。
对于第二组测试数据,把区间 [0,1][0, 1][3,5][3, 5] 的人叫醒,得到新数组的向量和的模为 1111 ,此时是向量和的模长最大的。

首页