80pts 求助
查看原帖
80pts 求助
552088
12468C楼主2023/3/2 11:29
#include<bits/stdc++.h>
#define N 100001
long long a[N],m,p1,s1,s2,a_c=0,b_c=0,mins=1000001,ans=0;
int book=-1;
using namespace std;
inline long long read(){
	long long ans=0,f=1;
	char ch=getchar();
	if(ch=='-'){
		f=-1;
	}
	while(!isdigit(ch)){
		ch=getchar();
	}
	while(isdigit(ch)){
		ans=((ans<<1)+(ans<<3)+(ch^48));
		ch=getchar();
	}
	return ans*f;
}
int main(){
	//memset(0,a,sizeof(a));
	long long n=read();
	for(long long i=1;i<=n;i++){
		a[i]=read();
	}
	m=read(),p1=read(),s1=read(),s2=read();
	for(long long i=1;i<=n;i++){
		if(i<m){
			a_c+=a[i]*(m-i);
		}
		else{
			b_c+=a[i]*(i-m);
		}
	}
	if(p1<m){
		a_c+=(m-p1)*s1;
		//book=1;
	}
	else{
		b_c+=(p1-m)*s1;
		//book=0;
	}
	for(long long i=1;i<=n;i++){
		if(i<m){
			if(abs((m-i)*s2+a_c-b_c)<mins){
				ans=i;
				mins=abs((m-i)*s2+a_c-b_c);
			}
		}
		else{
			if(abs((i-m)*s2+b_c-a_c)<mins){
				ans=i;
				mins=abs((i-m)*s2+b_c-a_c);
			}
		}
	}
	cout<<ans;
}
2023/3/2 11:29
加载中...