#include<bits/stdc++.h>
#define int long long
#define pt putchar(' ')
#define nl puts("")
#define pi pair<int,int>
#define pb push_back
#define go(it) for(auto &it:as[x])
using namespace std;
const int N=55;
int n,a,b,ans=2e9;
int w[N],f[N][N][N],mx[N][N],mn[N][N];
int fr(){
int x=0,flag=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') flag=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=x*10+(ch-'0');
ch=getchar();
}
return x*flag;
}
void fw(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) fw(x/10);
putchar(x%10+'0');
}
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a<b?a:b;}
int sqr(int x){return x*x;}
signed main()
{
n=fr(),a=fr(),b=fr();
for(int i=1;i<=n;i++) mx[i][i]=mn[i][i]=w[i]=fr();
for(int len=2;len<=n;len++)
for(int i=1,j=len;i+len-1<=n;i++,j++)
mx[i][j]=max(mx[i+1][j],mx[i][j-1]),mn[i][j]=min(mn[i+1][j],mn[i][j-1]);
memset(f,0x3f,sizeof f);
for(int i=1;i<=n;i++) f[i][i][1]=a;
for(int len=2;len<=n;len++)
for(int i=1;i+len-1<=n;i++)
{
int j=i+len-1;
for(int k=2;k<=len;k++)
for(int l=i+1;l<j;l++)
for(int r=l;r<j;r++)
f[i][j][k]=min(f[i][j][k],f[l][r][k-1]+a+b*sqr(max(mx[i][l-1],mx[r+1][j])-min(mn[i][l-1],mn[r+1][j])));
for(int p=i;p<=j;p++)
for(int k=2;k<=len;k++)
f[i][j][k]=min({f[i][j][k],f[i][p][k-1]+f[p+1][j][1],f[i][p][1]+f[p+1][j][k-1]});
f[i][j][1]=a+b*sqr(mx[i][j]-mn[i][j]);
}
for(int k=1;k<=n;k++) ans=min(ans,f[1][n][k]);
fw(ans);
return 0;
}