博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Marvolo Gaunt's Ring CodeForces - 855B
阅读量:4968 次
发布时间:2019-06-12

本文共 1965 字,大约阅读时间需要 6 分钟。

Professor Dumbledore is helping Harry destroy the Horcruxes. He went to Gaunt Shack as he suspected a Horcrux to be present there. He saw Marvolo Gaunt's Ring and identified it as a Horcrux. Although he destroyed it, he is still affected by its curse. Professor Snape is helping Dumbledore remove the curse. For this, he wants to give Dumbledore exactly x drops of the potion he made.

Value of x is calculated as maximum of p·ai + q·aj + r·ak for given p, q, r and array a1, a2, ... an such that 1 ≤ i ≤ j ≤ k ≤ n. Help Snape find the value of x. Do note that the value of x may be negative.

Input

First line of input contains 4 integers n, p, q, r ( - 109 ≤ p, q, r ≤ 109, 1 ≤ n ≤ 105).

Next line of input contains n space separated integers a1, a2, ... an ( - 109 ≤ ai ≤ 109).

Output

Output a single integer the maximum value of p·ai + q·aj + r·ak that can be obtained provided 1 ≤ i ≤ j ≤ k ≤ n.

Example

Input
5 1 2 3 1 2 3 4 5
Output
30
Input
5 1 2 -3 -1 -2 -3 -4 -5
Output
12

Note

In the first sample case, we can take i = j = k = 5, thus making the answer as 1·5 + 2·5 + 3·5 = 30.

In second sample case, selecting i = j = 1 and k = 5 gives the answer 12.

题解:注意顺序是一定的,i<=j<=k,所以可以枚举中间值j,然后用两个数组分别存第一项的前缀最大值,第三项的后缀最大值,最后加起来遍历一遍就行了。

1 #include
2 using namespace std; 3 typedef long long ll; 4 5 const int maxn=1e5+5; 6 7 ll n,p,q,r; 8 ll a[maxn],b[maxn],c[maxn]; 9 10 int main()11 { cin>>n>>p>>q>>r;12 ll temp;13 for(int i=1;i<=n;i++){14 cin>>temp;15 a[i]=p*temp;16 b[i]=q*temp;17 c[i]=r*temp;18 } 19 temp=a[1];20 for(int i=1;i<=n;i++){21 temp=max(temp,a[i]);22 a[i]=temp;23 }24 temp=c[n];25 for(int i=n;i>=1;i--){26 temp=max(temp,c[i]);27 c[i]=temp;28 }29 temp=a[1]+b[1]+c[1];30 for(int i=1;i<=n;i++) temp=max(temp,a[i]+b[i]+c[i]);31 cout<
<

 

转载于:https://www.cnblogs.com/zgglj-com/p/7745426.html

你可能感兴趣的文章
FTP与SFTP的区别
查看>>
unity内存加载和释放
查看>>
静态代码块,代码块
查看>>
RHEL 6.5----Varnish缓存服务器
查看>>
SQL Server添加MDW性能监控报表(转载)
查看>>
c# 多线程委托传参方式
查看>>
bootstrap表单
查看>>
iOS应用内切换多国语言
查看>>
欧拉回路 uoj117
查看>>
Java_io_list()的应用以及内部类
查看>>
Java | 集合
查看>>
怎样快速免费获取Windows版本的ZBrush
查看>>
invalid stream header: 31323334
查看>>
DSAPI多功能组件编程应用-文件类
查看>>
vue本地项目设置通过手机访问
查看>>
NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
查看>>
网络游戏的基本数据埋点和数据统计---2016/7/25
查看>>
Java从零开始学四十五(Socket编程基础)
查看>>
React中的setState到底发生了什么?
查看>>
java操作Excel文件
查看>>