72分代码:
#include<iostream>
using namespace std;
int main(){
long long a[100001]={0},n,m,p1,s1,s2;
long long l=0,h=0,min,minn=1e19,len;
cin>>n;
for(long long i=1;i<=n;i++){
cin>>a[i];
}
cin>>m>>p1>>s1>>s2;
for(long long i=1;i<m;i++){
l=l+(m-i)*a[i];
}
for(long long i=m+1;i<=n;i++){
h=h+a[i]*(i-m);
}
if(p1>m){
a[p1]=a[p1]+s1;
h=h+s1*(p1-m);
}if(p1<m){
a[p1]=a[p1]+s1;
l=l+s1*(m-p1);
}if(l==h){
cout<<m;
return 0;
}else{
if(l>h){
for(long long i=m+1;i<=n;i++){
if(s2*(i-m)+h>l){
min=s2*(i-m)+h-l;
}
if(s2*(i-m)+h==l){
cout<<i;
return 0;
}
if(s2*(i-m)+h<l){
min=l-(s2*(i-m)+h);
}
if(minn>min){
minn=min;
len=i;
}
}
cout<<len;
return 0;
}
for(long long i=1;i<m;i++){
if(s2*(m-i)+l>h){
min=s2*(m-i)+l-h;
}
if(s2*(m-i)+l==h){
cout<<i;
return 0;
}
if(s2*(m-i)+l<h){
min=h-(s2*(m-i)+l);
}
if(minn>min){
minn=min;
len=i;
}
}
cout<<len;
return 0;
}
return 0;
}
求hack