#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
****************************************************************/