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

题目描述

贴春联是中国传统的春节习俗之一,通常在农历春节前后进行。人们会在门楣或墙壁上贴上写有吉祥话语的对联或单行的春联,以祈求新的一年里平安、幸福和吉祥。春联一般由红色纸张制作,上面写有各种祝福的词语,如“福”、“寿”、“财”等。春联的内容通常与新年祝福、家庭幸福、事业顺利等相关。
贴春联的习俗源自古代的祈福仪式,人们相信通过贴春联可以祈求来年的好运和平安。在贴春联的过程中,家庭成员通常会一起参与,增进家庭团聚的氛围。此外,贴春联也是一种美化家居环境的方式,给家里增添节日的喜庆氛围。
在现代社会,贴春联的习俗仍然被人们传承并且重视。每到春节来临之际,人们都会购买或自己制作春联,然后在家中进行贴春联的仪式。这一传统习俗不仅是中华民族的文化传统,也是一种表达美好祝愿和希望的方式。

                             
又被吩咐去贴春联了,但是他很不喜欢,因为他觉得很麻烦,于是他开发了一种新的贴春联的方法数字表示。
众所周知,春联分为横批、上联和下联。在一个长度为的数组中,我们选定一个长度为的区间,将这个区间和定义为上联的数值,然后再选一个长度为的区间,将这个区间的和定义为横批的数值,最后再选一个长度为的区间,将这个区间和定义为下联的数值。由于每个对联相互独立,所以需要保证找出的三个区间中的任意两个区间都不会相互重叠且区间在数组中的排列顺序依次为上联、横幅、下联,并且还要使得整幅对联最美观(即上联+下联-横批的值最大),这样才不会显得整幅对联头重脚轻。由于对联实在太多,已经找不过来了,所以他请作为贴对联的高手来帮助他解决这个问题。

输入描述:

第一行包含个整数分别表示数组长度,上联和下联的长度,横批的长度。
接下来一行个整数,个数为a_{i}( -10^{6}\leq a_{i} \leq 10^{6})表示可选的数值。
数据范围:3\leq N\leq 10^{5},1\leq K_{1}\leq (N-1)/2,1\leq K_{2}\leq N-2,2*K_{1}+K_{2}\leq N, -10^{6}\leq a_{i} \leq 10^{6}

输出描述:

一个整数,含义如题面所示。
示例1

输入

复制
3 1 1
5 1 6

输出

复制
10

说明

当前情况下只能选择5+6-1=10。