30 lines
629 B
C++
30 lines
629 B
C++
#include<cstdio>
|
|
#include<cstring>
|
|
int main()
|
|
{
|
|
int l1,l2,l3,c1,c2,c3,n,m,i,j,p,s,t;
|
|
long long d[101],dis,f[101];
|
|
scanf("%d%d%d%d%d%d",&l1,&l2,&l3,&c1,&c2,&c3);
|
|
scanf("%d",&n);
|
|
scanf("%d%d",&s,&t);
|
|
if (s>t)
|
|
{p=s;s=t;t=p;}
|
|
d[1]=0;
|
|
for(i=2;i<=n;i++)
|
|
scanf("%I64d",&d[i]);
|
|
memset(f,127,sizeof(f));
|
|
f[s]=0;
|
|
for(i=s+1;i<=t;i++)
|
|
for(j=s;j<=i-1;j++)
|
|
{
|
|
dis=d[i]-d[j];
|
|
if (dis<=l1)
|
|
if (f[j]+c1<f[i]) f[i]=c1+f[j];
|
|
if (dis>l1&&dis<=l2)
|
|
if (f[j]+c2<f[i]) f[i]=c2+f[j];
|
|
if (dis>l2&&dis<=l3)
|
|
if (f[j]+c3<f[i]) f[i]=c3+f[j];
|
|
}
|
|
printf("%I64d",f[t]);
|
|
}
|
|
|