88分蒟蒻求助,12,14,20没过
查看原帖
88分蒟蒻求助,12,14,20没过
373670
cuiyr楼主2020/11/3 20:07
#include <iostream>
#include <cmath>
using namespace std;
long long n,m,a[100500],p1,s1,s2,d,t;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	cin>>m>>p1>>s1>>s2;
	for(int i=1;i<=m-1;i++) d=d+a[i]*(m-i);
	for(int i=m+1;i<=n;i++) t=t+a[i]*(i-m);
	if(p1<m) d=d+(m-p1)*s1;
	if(p1>m) t=t+(p1-m) *s1;
	if(d==t||m==1||m==n||n==1||abs(d-t)<=s2/2) cout<<m;
	else{
		if(d>t){
			long long mink=d-t;
			for(int i=m+1;i<=n;i++){
				long long k=s2*(i-m);
				if(k>=mink){
					if(abs(mink-k)<abs(mink-s2*(i-1-m))) cout<<i;
					else cout<<i-1;
					break;
				} 
				if(i==n) cout<<i;
			}
		}
		else{
			long long mink=t-d;
			for(int i=1;i<=m-1;i++){
				long long k=s2*(m-i);
				if(k<=mink&&i!=1){
					if(abs(mink-k)<abs(s2*(m-i-1))) cout<<i;
					else cout<<i-1;
					break;
				}
				if(i==m-1) cout<<1;
			}
		}
	}
	return 0;
} 
2020/11/3 20:07
加载中...