88分求助
查看原帖
88分求助
433518
名字好难取144楼主2021/7/31 10:49
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<stdlib.h>
#include<time.h>
#define ll long long
using namespace std;
const ll N=5e5+10;
const ll Z=1e9+7;

ll a[N];
ll n,m,p1,s1,s2;
double maxx,minn=Z*Z;
ll place,lef,righ;

int main()
{
	ll n;
	cin>>n;
	for(ll i=1;i<=n;++i)
	{
		cin>>a[i];
	}
	cin>>m>>p1>>s1>>s2;
	if(p1==m)
	{
		cout<<m;
		return 0;
	}
	a[p1]+=s1;
	for(ll i=1;i<m;++i) lef+=(a[i]*(m-i));
	for(ll i=m+1;i<=n;++i) righ+=(a[i]*(i-m));
	if(p1<m)
	{
		for(int i=m+1;i<=n;++i)
		{
			if( abs((double)(lef-(righ+(i-m)*s2))) <= minn ) 
			{
				minn=abs( (double) (lef-(righ+(i-m)*s2)));
				place=i;
			}
		}
	}
	if(p1>m)
	{
		for(ll i=1;i<m;++i)
		{
			if( abs((double)(lef+(m-i)*s2)-righ) <= minn )
			{
				minn=(abs( (double) (lef+(m-i)*s2)-righ) );
				place=i;
			}
		}
	}	
	cout<<place<<endl;
	return 0;
}

码风不是太好,喜欢这样空行。。。

2021/7/31 10:49
加载中...