64分求条
查看原帖
64分求条
1060136
_T__T_楼主2024/8/14 22:17
#include<bits/stdc++.h>
using namespace std;
long long n,c[100005],p1,s1,s2,m;
long long l[5][100005],h[5][100005];
long long minn=100e9,p2;
int main()
{
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	scanf("%lld",&n);
	for(long long i=1;i<=n;i++)
	{
		scanf("%lld",&c[i]);
	}
	scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);
	c[p1]+=s1;
	for(long long i=1;i<=n;i++)
	{
		if(i==m)continue;
		if(m>i)
		{
			l[1][0]+=c[i]*(m-i);
			l[2][i]=m-i;
		}
		else
		{
			h[1][0]+=c[i]*(i-m);
			h[2][i]=i-m;
		}
	}
	for(long long i=1;i<=n;i++)
	{
		if(i==m)continue;
		if(i<m)
		{
			long long x=abs((l[1][0]+l[2][i]*s2)-h[1][0]);
			if(minn>x)
			{
				p2=i;
				minn=x;
			}
		}
		else
		{
			long long x=abs((h[1][0]+h[2][i]*s2)-l[1][0]);
			if(minn>x)
			{
				p2=i;
				minn=x;
			}
		}
	}
	printf("%lld",p2);
	return 0;
}

2024/8/14 22:17
加载中...