#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long n,m,p1,s1,s2,sum1,sum2,minn=(long long)1e+20,k,number;
struct ming
{
long long c;//人数
long long far;//离m点的距离
long long air;//气势
}a[100005];//定义结构体,按兵营计数
void read(long long &x)//输入优化
{
long long f=1;x=0;char s=getchar();
while(s>'9'||s<'0'){if(s=='-') f=-1;s=getchar();}
while(s>='0'&&s<='9'){x=(x<<3)+(x<<1)+s-'0';s=getchar();}
x*=f;
}
void write(long long x)//输出优化
{
if(x<0)
{
x=(~x)+1;
putchar('-');
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
long long Fabs(long long x)//判断绝对值
{
if(x<0)
return -x;
return x;
}
int main()
{
read(n);
for(long long i=1;i<=n;i++)
read(a[i].c);
read(m);read(p1);read(s1);read(s2);
a[p1].c+=s1;//得到天降神兵的兵营人数增加
for(long long j=1;j<=n;j++)
{
a[j].far=Fabs(j-m);//计算每个兵营离m点的距离
a[j].air=a[j].far*a[j].c;//计算每个兵营的气势
if(j<m)
sum1+=a[j].air;//计算龙方
if(j>m)
sum2+=a[j].air;//计算虎方
}
if(sum1==sum2)
{
write(m);
return 0;
}//如果双方气势一致则放在m营中
k=0;//k赋初值
while(k<n)//超过边界退出
{
k++;//枚举每个兵营
long long t,t1;
if(k==m)
{
t=sum1;
t1=sum2;
}//k处于m时双方不变
if(k<m)
{
t=sum1+a[k].far*s2;
t1=sum2;
}//小于m时龙方增加
if(k>m)
{
t=sum2+a[k].far*s2;
t1=sum1;
}//大于m时虎方增加
if(Fabs(t-t1)<minn)//计算双方气势之差
{
minn=Fabs(t-t1);//最小值
number=k;//其序号
}
}
write(number);//输出
return 0;
}
/**************************************************************
Problem: 1437
User: admin
Language: C++
Result: Accepted
Time:213 ms
Memory:4420 kb
****************************************************************/