#include<iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
using namespace std;
long long int a[1000009];
long long int minx(long long int a,long long int b)
{
if(a>b)return b;
return a;
}
int main()
{
long long int n;
scanf("%lld",&n);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
long long int p1,s2,s1,m;
scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);
a[p1]+=s1;
long long int minn=0;
long long int p=0,q=0;
for(int i=1;i<m;i++)
p+=a[i]*(m-i);
for(int i=m+1;i<=n;i++)
q+=a[i]*(i-m);
if(p>q)
{
minn=n;
long long int i=m;
long long int j=n;
while(j>i+1)
{
minn=n;
long long int mid=(i+j)/2;
if(q+(mid-m)*s2>p)j=mid;
else if(q+(mid-m)*s2<p)i=mid;
else
{
minn=minx(minn,mid);
j=mid;
}
}
if(minn==n)
{
if(abs(p-q-(j-m)*s2)>=abs(p-q-(i-m)*s2))minn=i;
else minn=j;
}
}
else if(p<q)
{
minn=m;
long long int i=1;
long long int j=m;
while(j>i+1)
{
long long int mid=(i+j)/2;
if(p+(m-mid)*s2>q)i=mid;
else if(p+(m-mid)*s2<q)j=mid;
else
{
minn=minx(minn,mid);
j=mid;
}
}
if(minn==m)
{
if(abs(q-p-(m-j)*s2)>=abs(q-p-(m-i)*s2))minn=i;
else minn=j;
}
}
if(minn==0)cout<<m<<endl;
else cout<<minn<<endl;
return 0;
}
龙虎斗
最新推荐文章于 2023-01-01 11:33:56 发布