帮忙查一下错
#include<stdio.h>
#define int long long
#define abs(a)((a)>0?(a):(-(a)))
int n,m,a[100050];
signed main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
int pos1,num1,num2;
scanf("%lld%lld%lld%lld",&m,&pos1,&num1,&num2);//读入
a[pos1]+=num1;
int sum1=0,sum2=0;
for(int i=1;i<m;i++){
sum1+=(m-i)*a[i];
}
for(int i=m+1;i<=n;i++){
sum2+=(i-m)*a[i];
}//sum1为龙的势力
if(sum1==sum2){
printf("%lld\n",m);
}//若已经相等,放在m处
if(sum1<sum2){//若龙势力小,要增加龙的势力
int pos2,minn=2e18;//pos2为天降奇兵的位置,minn为最小的差值
for(int i=1;i<m;i++){
int tmp=(m-i)*num2;//tmp为龙增加的势力值
if(abs(sum1+tmp-sum2)<minn){
minn=abs(sum1+tmp-sum2);
pos2=i;
}//更新答案
}
printf("%lld\n",pos2);
}
if(sum1>sum2){//若虎势力小,要增加虎的势力
int pos2,minn=2e18;//pos2为天降奇兵的位置,minn为最小的差值
for(int i=m+1;i<=n;i++){
int tmp=(i-m)*num2;;//tmp为虎增加的势力值
if(abs(sum2+tmp-sum1)<minn){
minn=abs(sum2+tmp-sum1);
pos2=i;
}//更新答案
}
printf("%lld\n",pos2);
}
return 0;
}