72分求助
查看原帖
72分求助
244175
Plex楼主2021/9/30 13:27
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
long long n;
long long c[100005];
long long m,p1,s1,s2,p2;
long long force_d,force_t;
long long minn=1000000010;
long long dis;
int main()
{
	cin>>n;
	for(long long i=1;i<=n;++i)
	{
		cin>>c[i];
	}
	cin>>m>>p1>>s1>>s2;
	c[p1]+=s1;
	for(int i=1;i<m;++i)
	{
		force_d+=c[i]*(m-i);
	}
	for(int i=n;i>m;--i)
	{
		force_t+=c[i]*(i-m);
	}
	//	cout<<force_d<<" "<<force_t;
	dis=abs(force_d-force_t);
	if(force_d<force_t)
	{
		for(long long i=1;i<m;++i)
		{
			if(abs(dis-s2*(m-i))<minn)
			{
				minn=abs(dis-s2*(m-i));
				p2=i;
			}
		}
		cout<<p2<<endl; 
	}
	else if(force_d>force_t)
	{
		for(long long i=n;i>m;--i)
		{
			if(abs(dis-s2*(i-m))<minn)
			{
				minn=abs(dis-s2*(i-m));
				p2=i;
			}
		}
		cout<<p2<<endl;
	}
	else cout<<m<<endl;
	return 0;
	
}
2021/9/30 13:27
加载中...