1 #include<algorithm>
2 #include<iostream>
3 #include<cstring>
4 #include<cstdio>
5 //by NeighThorn
6 #define inf 0x3f3f3f3f
7 using namespace std;
8 //眉眼如初,岁月如故
9
10 const int maxn=1000+5;
11
12 int n,a,b,f,fa,fb,sum,s[maxn],re[maxn],num[maxn];
13
14 inline int calc(int x){
15 int ans=x*f;
16 memcpy(s,num,sizeof(s));
17 memset(re,0,sizeof(re));
18 for(int i=1;i<=n;i++){
19 if(x){
20 int lala=min(x,s[i]);
21 x-=lala,s[i]-=lala,re[i]+=lala;
22 }
23 for(int j=1;j<=i-b-1&&s[i];j++){
24 int lala=min(re[j],s[i]);
25 re[j]-=lala,s[i]-=lala,ans+=fb*lala,re[i]+=lala;
26 }
27 for(int j=i-a-1;j>=1&&s[i];j--){
28 int lala=min(re[j],s[i]);
29 re[j]-=lala,s[i]-=lala,ans+=fa*lala,re[i]+=lala;
30 }
31 if(s[i])
32 return inf;
33 }
34 return ans;
35 }
36
37 signed main(void){
38 scanf("%d%d%d%d%d%d",&n,&a,&b,&f,&fa,&fb);sum=0;
39 for(int i=1;i<=n;i++)
40 scanf("%d",&num[i]),sum+=num[i];
41 int l=1,r=sum;
42 while(l<r-1){
43 int mid=(l+r)>>1,Mid=(mid+r)>>1;
44 if(calc(mid)<calc(Mid))
45 r=Mid;
46 else
47 l=mid;
48 }
49 printf("%d\n",min(calc(l),calc(r)));
50 return 0;
51 }//Cap ou pas cap. Pas cap.