72pts求调
查看原帖
72pts求调
776337
sugawara楼主2024/7/5 14:12
#include<math.h>
#include<iostream>
#include<algorithm>
#define int long long
#define INF 0x3f3f3f3f
using namespace std;
const int N=1e5+10;
int c[N],n,m,p1,s1,s2;
int ls,hs,num,mx=INF;
signed main(){
//	freopen("P5016_5","r",stdin);
	scanf("%lld",&n);
 	for(int i=1;i<=n;i++) scanf("%lld",&c[i]);
	scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);
	for(int i=1;i<=n;i++){
        if(i<m) ls+=(m-i)*c[i];
        else if(i>m) hs+=(i-m)*c[i];
    }
	if(p1!=m){
		if(p1>m) hs+=(p1-m)*s1;
		if(p1<m) ls+=(m-p1)*s1;
	}num=hs-ls;
	if(num==0){printf("%lld",m);return 0;}
	else if(num>0)
		for(int i=1;i<m;i++){if(abs(num-abs(mx-m)*s2)>abs(num-abs(i-m)*s2)) mx=i;}
	else for(int i=m+1;i<=n;i++){if(abs(num-abs(mx-m)*s2)>abs(num-abs(i-m)*s2)) mx=i;}
	if(abs(hs-ls)<abs(s1*abs(m-p1)-abs(mx-m)*s2)){
		printf("%d",m);return 0;
	}
	printf("%lld",mx);
//	printf("\n\n\n%lld %lld",ls,hs);
	return 0;
}
2024/7/5 14:12
加载中...