92分,求助qwq
查看原帖
92分,求助qwq
1085720
zhuowei楼主2024/2/25 17:57
#include<bits/stdc++.h>
using namespace std;
long long a[114514];
int main() {
	long long n,m,p1,s1,s2,sum1=0,sum2=0;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	cin>>m>>p1>>s1>>s2;
	a[p1]=a[p1]+s1;
	for(int i=1;i<=n;i++){
		if(i<m) sum1=sum1+(m-i)*a[i];
		else if(i>m) sum2=sum2+(i-m)*a[i];
	}
	if(sum1==sum2){
		cout<<m;
		return 0;
	}
	if(max(sum1,sum2)==sum1){
		for(int i=n;i>m;i--){
			if(i-1==m){
				cout<<i;
				return 0;
			}
			else if(sum2+(i-m)*s2==sum1){
				cout<<i;
				return 0;
			}
			else if(i==n && sum2+(i-m)*s2<=sum1){
				cout<<i;
				return 0;
			}
			else if(sum2+(i-m)*s2>sum1 && sum2+(i-1-m)*s2<sum1 && abs(sum1-(sum2+(i-m)*s2))<abs(sum1-(sum2+(i-1-m)*s2))){
				cout<<i;
				return 0;
			}
			else if(sum2+(i-m)*s2>sum1 && sum2+(i-1-m)*s2<sum1 && abs(sum1-(sum2+(i-m)*s2))>abs(sum1-(sum2+(i-1-m)*s2))){
				cout<<i-1;
				return 0;
			}
		}
	}
	if(max(sum1,sum2)==sum2){
		for(int i=1;i<m;i++){
			if(i-1==m){
				cout<<i;
				return 0;
			}
			else if(sum1+(m-i)*s2==sum2){
				cout<<i;
				return 0;
			}
			else if(i==1 && sum1+(m-i)*s2<=sum2){
				cout<<i;
				return 0;
			}
			else if(sum1+(m-i)*s2>sum2 && sum1+(m-i-1)*s2<sum2 && abs(sum2-(sum1+(m-i)*s2))<abs(sum2-(sum1+(m-i-1)*s2))){
				cout<<i;
				return 0;
			}
			else if(sum1+(m-i)*s2>sum2 && sum1+(m-i-1)*s2<sum2 && abs(sum2-(sum1+(m-i)*s2))>abs(sum2-(sum1+(m-i-1)*s2))){
				cout<<i+1;
				return 0;
			}
		}
	}
	return 0;
}
2024/2/25 17:57
加载中...