92分,求助!!!
查看原帖
92分,求助!!!
189610
APolaris楼主2020/10/14 21:43
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>

using namespace std;

long long n,a[100100],m,p1,s1,s2,ll,hh;
long long l,h,minn=99999999,k,q;

int main()
{
//	freopen("fight.in","r",stdin);
//	freopen("fight.out","w",stdout);
	scanf("%lld",&n);
	for(long long i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);
	a[p1]+=s1;
	for(long long i=1;i<=n;i++)
	{
		if(i<m)
			l+=a[i]*(m-i);
		if(i>m)
			h+=a[i]*(i-m);	
	}
	if(l==h&&s1!=0)
	{
		printf("%lld",m);
		return 0;
	}
	else if(l==h&&s1==0)
	{
		printf("1");
		return 0;
	}
	if(l>h)
	{
		for(long long i=m;i<=n;i++)
		{
			hh=h;
			hh+=s2*(i-m);
			k=labs(l-hh);
			if(minn>k)
			{
				minn=k;
				q=i;
			}
		}
		printf("%lld",q);
		return 0;
	}
	if(l<h)
	{
		for(long long i=1;i<=m;i++)
		{
			ll=l;
			ll+=s2*(m-i);
			k=labs(h-ll);
			if(minn>k)
			{
				minn=k;
				q=i;
			}
		}
		printf("%lld",q);
		return 0;
	}
	return 0;
}
2020/10/14 21:43
加载中...