怎么回事呢??
#include<bits/stdc++.h>
using namespace std;
long long a[1000005];
int main()
{
//freopen("lohu.in","r",stdin);
// freopen("lohu.out","w",stdout);
long long n,i;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
long long m,k,c,s,p;
long long x=0,y=0;
cin>>m>>k>>c>>s;
a[k]+=c;
for( i=1;i<=k;i++)
{
x+=a[i]*(m-i);
}
for(i=m+1;i<=n;i++)
{
y+=a[i]*(i-m);
}
if(x==y)
{
p=m;//势力相等
}
else if(x>y)
{ //左边势力大,放右边
c=x-y;
p=m;//默认为放m
for(i=m+1;i<=n;i++)
{//没有更差就可以更小,要编号小的
if(abs(y+(i-m)*s-x)<c)
{
c=abs(y+(i-m)*s-x);
p=i;
}
}
}
else
{
//右边势力大,放左边
c=y-x;
p=m;
for(int i=m-1;i>=1;i--)
{
if(abs(x+(m-i)*s-y)<=c)
{
c=abs(x+(m-i)*s-y);
p=i;
}
}
}
cout<<p<<endl;
return 0;
}
有没有大佬来救我