RT,以下是代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll maxm(ll a,ll b)
{
if(a>b)
return a;
else
return b;
}
ll minm(ll a,ll b)
{
if (a<b)
return a;
else
return b;
}
int main()
{
ll n,a[100005],lo=0,hu=0,s1,s2,m,p1,p2;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>m>>p1>>s1>>s2;
a[p1]+=s1;
for(int i=1;i<m;i++)
lo+=a[i]*(m-i);
for(int i=m+1;i<=n;i++)
hu+=a[i]*(i-m);
if(lo==hu)
{
cout<<m;
return 0;
}
ll c=abs(lo-hu);
//cout<<lo<<" "<<hu<<" ";
if(lo<hu)
{
p2=m-(hu-lo)/s2;
p2=maxm(1,p2);
p2=minm(p2,m-1);
if(p2>1&&abs(c-(m-p2+1)*s2)<abs(c-(m-p2)*s2))
cout<<p2-1;
else
cout<<p2;
}
else
{
p2=m+(lo-hu)/s2;
p2=maxm(m,p2);
p2=minm(p2,n);
if(p2<n&&abs(c-(m-p2-1)*s2)<abs(c-(m-p2)*s2))
cout<<p2+1;
else
cout<<p2;
}
return 0;
}