26分求助
查看原帖
26分求助
483715
shenjiaao123楼主2021/10/5 22:09
#include<iostream>
#include<cmath>
#define LL long long
using namespace std;
LL iput[100001];
int main(){
	LL n,m,p1,s1,s2;
	LL lq=0,hq=0;
	cin>>n;
	for(LL i=1;i<=n;i++) cin>>iput[i];
	cin>>m>>p1>>s1>>s2;
	iput[p1]+=s1;
	for(LL i=1;i<m;i++) lq+=iput[i]*(m-i);
	for(LL i=m+1;i<=n;i++) hq+=iput[i]*(i-m);
	LL left=lq>hq?m+1:1,right=lq>hq?n:m-1;
	LL mid,ago=0;
	while(1){
		mid=abs(right+left)/2;//2
		LL test=s2*abs(m-mid)+min(hq,lq);
		if(ago==test) break;
		else if(test<max(lq,hq)){
			left=lq>hq?mid:left;
			right=lq>hq?right:mid;
			ago=test;
		}
		else if(test>max(lq,hq)){
			left=lq>hq?m+1:left;
			right=lq>hq?mid:right;
			ago=test;
		}
		else break;
	}
	cout<<mid;
	return 0;
} 

不知道错哪了,大佬帮一下

2021/10/5 22:09
加载中...