8分,又是哪个地方打错字了?
查看原帖
8分,又是哪个地方打错字了?
1037200
lty2023楼主2024/10/22 20:56
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long n;
	cin>>n;
	long long a[100010];
	for(long long i=0;i<n;i++){
		cin>>a[i];
	}
	long long m,p,s1,s2;
	cin>>m>>p>>s1>>s2;
	a[p+1]+=s1;
	long long sum1=0,sum2=0;
	for(long long i=0;i<n;i++){
		if(i+1<m){
			sum1+=a[i]*(m-i-1);
		}
		if(i+1>m){
			sum2+=a[i]*(i+1-m);
		}
	}
	long long man=abs(sum1-sum2),p2;
	for(long long i=0;i<n;i++){
		if(i+1<m){
			sum1+=s2*(m-i-1);
		}
		if(i+1>m){
			sum2+=s2*(i+1-m);
		}
		if(abs(sum1-sum2)<man){
			p2=i+1;
			man=abs(sum1-sum2);
		}
		if(i+1<m){
			sum1-=s2*(m-i-1);
		}
		if(i+1>m){
			sum2-=s2*(i+1-m);
		}
	}
	cout<<p2;
}
2024/10/22 20:56
加载中...