问题 F: 回忆与展望

内存限制:263 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

通过梦境转移器,老师成功进入了编号最大的梦境。在那里,他遇到了 Seia。她的手上有 nn 份回忆,编号为 1,2,3,⋯,n1,2,3,,n。其中每一份都包含了老师与学生们度过的最美好的时光。这些日常时光交织在一起,共同组成了一个充满了无数奇迹的世界。

老师给编号为 ii1≤i≤n1in)的回忆确定了它的 美好度 aiai。他想要按照某个顺序重温所有的回忆,也就是确定一个 [1,n][1,n] 的排列 pp 并依次重温编号为 p1,p2,p3,⋯,pnp1,p2,p3,,pn 的回忆。

令 a0=p0=0a0=p0=0。老师对未来的 展望程度 可以用一个变量 SS 表示,初始时 S:=0S:=0。接下来在老师重温回忆的过程中,展望程度会根据美好度而发生变化。具体地,在老师重温编号为 pipi1≤i≤n1in)的回忆时:

  1. 若 api>api−1api>api1,展望程度会增加 xx,也就是 S:=S+xS:=S+x
  2. 若 api=api−1api=api1,展望程度会增加 yy,也就是 S:=S+yS:=S+y
  3. 若 api<api−1api<api1,展望程度会增加 zz,也就是 S:=S+zS:=S+z

Seia 通过某种方法得知了整数 x,y,zx,y,z 的值。她还知道老师喜欢美好,所以 x≥y≥zxyz。她想要帮助老师确定排列 pp,使得重温所有回忆后老师的展望程度最大。

Seia 瞥见了你,此时你或许在面对着一块电脑屏幕编写着代码,又或许是面对着一张草稿纸沉思。你或许正重温着以前某一次竞赛的试题,又或许对着一个极为重要的竞赛成绩感到懊恼。其实,她更建议你在竞赛结束后与你的同学们聊聊天,留意留意这个世界的某处角落,回忆回忆过去,展望展望未来。你可能在某一天突然发觉,竞赛的具体知识和最终结果变得不再重要,而那份美好的回忆才是你人生中无法抹去的奇迹。

现在,是时候将这个问题告诉你了,Seia 想道。你只需要告诉她展望程度的最大值。

输入格式

本题包含多组测试数据。

来自 Seia 的温馨提示:本题输入输出量较大,对于使用 C++ 语言参加竞赛的选手,强烈建议使用关闭同步流的 cin 和 cout 完成输入输出。

首先在第一行输入一个整数 TT1≤T≤1001T100)表示测试数据组数。

对于每一组测试数据,输入包含两行。

第一行包含四个整数 n,x,y,zn,x,y,z1≤n≤∑n≤5×1061nn5×1061≤z≤y≤x≤5×1061zyx5×106),表示回忆的数量和计算展望程度所需要的三个参数。

第二行包含 nn 个整数 a1,a2,a3,⋯,ana1,a2,a3,,an1≤a1,a2,a3,⋯,an≤n1a1,a2,a3,,ann)表示回忆的美好度。

输出格式

对于每一组测试数据,输出包含一行一个整数表示展望程度的最大值。

输入样例 复制

2
5 9 7 5
3 1 2 3 4
10 1919810 114514 1
2 3 5 9 10 10 2 2 5 4

输出样例 复制

43
15472995

数据范围与提示

在样例的第一组测试数据中,取 p1=2,p2=3,p3=1,p4=4,p5=5p1=2,p2=3,p3=1,p4=4,p5=5 时展望程度为 4343,达到最大值。具体地:

  1. 由于 a2>a0a2>a0,因此 S:=9S:=9
  2. 由于 a3>a2a3>a2,因此 S:=18S:=18
  3. 由于 a1>a3a1>a3,因此 S:=27S:=27
  4. 由于 a4=a1a4=a1,因此 S:=34S:=34
  5. 由于 a5>a4a5>a4,因此 S:=43S:=43

存在其他达到最大值的排列,在此仅列举其中一个。

分类标签