2088: 序列游戏
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
给定一个整数数列Q,小学刚毕业的Gy和Nsk将分别对这个数列进行一次操作。
首先,Gy将这个数列的一个前缀(长度可以为0)的每一个数乘上-A;
然后,Nsk将这个数列的一个后缀(长度可以为0)的每一个数乘上-B。
设S为操作后,这个数列所有元素的和。
Gy要使S尽可能大,Nsk要使S尽可能小。
现在,Chnlich找到了你。他想要知道双方都不失误的情况下,最终S的值是多少。
输入
第一行三个数N,A,B。N表示数列Q的长度,A,B如上所述。
接下来N行,每行一个数,第i+1行的数表示这个数列的第i个数Qi。
输出
一行,表示最终S的值。
样例输入 复制
3 1 1
-1 -2 -3
样例输出 复制
0
提示
样例解释
若Gy操作前0个数,则Nsk操作后0个数,最终序列为-1 -2 -3,答案为-6;
若Gy操作前1个数,则Nsk操作后0个数,最终序列为1 -2 -3,答案为-4;
若Gy操作前2个数,则Nsk操作后0个数或3个数,最终序列为-1 -2 3或1 2 -3,答案为0;
若Gy操作3个数,则Nsk操作3个数,最终序列为-1 -2 -3,答案为-6;
综上所述,S=max(-6,-4,0,-6)=0。
数据范围
测试点编号 |
N的范围 |
A,B的范围 |
Qi的范围 |
0~1 |
N<=10 |
1<=A,B<=3 |
abs(Qi)<=20 |
2~3 |
N<=200 |
1<=A,B<=20 |
abs(Qi)<=1000 |
4~7 |
N<=5000 |
1<=A,B<=50 |
abs(Qi)<=1000000000 |
8~13 |
N<=100000 |
1<=A,B<=100 |
abs(Qi)<=1000000000 |
14~19 |
N<=1000000 |
1<=A,B<=30 |
abs(Qi)<=1000000000 |