秘密构成
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

承载着70亿的秘密
小小的行星,没有办法呼吸
人类的正义和人类的数量一样多的吧
两个人化作同一个秘密吧

给出  个二元组  。在其中删除若干个二元组,剩下的二元组中相邻的位置  和  会产生价值定义为

其中  为一个函数,定义为  。
求最大能得到的价值和。

输入描述:

第一行输入三个整数   表示二元组数量和函数  的系数 

第二行输入  个整数,第  个为   。

第三行输入  个整数,第  个为   。

输出描述:

输出包括一行一个整数表示最大价值和。
示例1

输入

复制
5 0 1
1 2 3 4 5
2 1 4 2 4

输出

复制
6

说明

选择最后两个二元组 (4,2) , (5,4) 则能够获得 6 的价值。
示例2

输入

复制
5 2 0
1 2 3 4 5
2 1 4 2 4

输出

复制
312

备注:

如果选择的二元组个数不超过 1 那么产生的价值为 0 。