WA了最后5个点 求求了
#include<bits/stdc++.h>
//#define int long long
using namespace std;
int n,m,p,x,s,a[100001],f,v2;
long long c,v1=999999999,h[2];
signed main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d%d%d%d",&m,&p,&x,&s);
a[p]+=x; a[m]=0;
for(int i=1;i<=n;i++)
{
if(i==m) {f=1; continue;}
if(f==0) h[f]+=a[i]*(m-i);
else h[f]+=a[i]*(i-m);
}
// printf("%d %d\n",h[0],h[1]);
if(h[0]==h[1])
{
printf("%d",m);
return 0;
}
if(h[0]>h[1])
{
for(int i=m;i<=n;i++)
{
c=0; a[i]+=s;
for(int j=m+1;j<=n;j++)
c+=a[j]*(j-m);
int ss=abs(h[0]-c);
if(ss<=v1)
{
v1=ss;
v2=i;
}
else
{
printf("%d",v2);
return 0;
}
a[i]-=s;
}
printf("%d",v2);
return 0;
}
if(h[0]<h[1])
{
for(int i=m;i>=1;i--)
{
c=0;
a[i]+=s;
for(int j=1;j<m;j++)
c+=a[j]*(m-j);
int ss=abs(c-h[1]);
if(ss<v1)
{
v1=ss;
v2=i;
}
else
{
printf("%d",v2);
return 0;
}
a[i]-=s;
}
printf("%d",v2);
return 0;
}
}