只有72分,请神犇们指点一下,谢谢各位!
查看原帖
只有72分,请神犇们指点一下,谢谢各位!
545516
Habseligkeit楼主2021/10/10 15:12
#include<bits/stdc++.h>
using namespace std;
const int M=100010;
long long n,a[M],m,p1,s1,s2,ans,lsum,hsum;
int main(){
	cin>>n;
    for(int i=1;i<=n;i++)
	    cin>>a[i];
	cin>>m>>p1>>s1>>s2;
	if(p1<m)lsum+=s1*(m-p1);
	if(p1>m)hsum+=s1*(p1-m);
	for(int i=1;i<m;i++)
	    lsum+=a[i]*(m-i);
	for(int i=n;i>m;i--)
	    hsum+=a[i]*(i-m);
	if(lsum==hsum){
		cout<<m<<endl;
		return 0;
	}
	if(lsum>hsum){
		long long t=lsum-hsum;
		for(int i=m;i<=n;i++){
			if(abs(lsum-(hsum+s2*(i-m)))<t){ 
			    ans=i;
			    t=abs(lsum-(hsum+s2*(i-m)));
			} 
		}
		cout<<ans<<endl;
		return 0;
	}
	if(lsum<hsum){
		long long t=hsum-lsum;
		for(int i=1;i<=m;i++){
			if(abs(hsum-(lsum+s2*(m-i)))<t){ 
			    ans=i;
			    t=abs(hsum-(lsum+s2*(m-i)));
			} 
		}
		cout<<ans<<endl;
		return 0;
	}
}
2021/10/10 15:12
加载中...