60分求助
查看原帖
60分求助
351132
TNTdeD楼主2022/10/6 20:40
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,c[10000001],m,p,s1,s2,w[10000001],l,r,p2,minn=0x7fffffff;
int main(){
	ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(ll i=1;i<=n;i++)	cin>>c[i];
    cin>>m>>p>>s1>>s2;
    for(ll i=1;i<=n;i++){
    	w[i]=abs(i-m)*c[i];
    	if(i>m)	r+=w[i];
    	if(i<m)	l+=w[i];
	}
    if(p<m) l+=(w[p]=(c[p]+=s1)*abs(p-m));
    else if(p>m)    r+=(w[p]=(c[p]+=s1)*abs(p-m));
    else    m+=(w[p]=(c[p]+=s1)*abs(p-m));
    if(r<l)/*r*/{
    	for(ll i=m;i<=n;i++){
    		if(abs(r-w[i]+abs(i-m)*(c[i]+s2)-l)<=minn){
    			minn=abs(r-w[i]+abs(i-m)*(c[i]+s2)-l);
    			p2=i;
			}
		}
	}
	else if(l<r)/*l*/{
		for(ll i=1;i<=m;i++){
    		if(abs(l-w[i]+abs(i-m)*(c[i]+s2)-r)<=minn){
    			minn=abs(l-w[i]+abs(i-m)*(c[i]+s2)-r);
    			p2=i;
			}
		}
	}
	else	p2=m;
	cout<<p2;
	return 0;
}
2022/10/6 20:40
加载中...