52525252我52分!(52我2)!
查看原帖
52525252我52分!(52我2)!
230825
许多楼主2020/10/26 20:36

不多说上代码 (记得@我

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int main()
{
	long long n,c[100001],m,q1,q2,s,w=0,e=0,qwe=10000000000000;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>c[i];
	cin>>m>>s>>q1>>q2;
	for(int i=1;i<=n;i++)
	{
		if(i!=m)
		{
			if(i-m>0)
				w=w+(i-m)*c[i];
			else
				e=e+(m-i)*c[i];
		}
	}
	if(s==m)
		c[m]=c[m]+q1;
	else
	{
		c[s]=c[s]+q1;
		if(s-m>0)
			w=w+(s-m)*q1;
		else
			e=e+(m-s)*q1;
	}
	//cout<<e<<endl<<w<<endl; 
	if(e>w)
	{
		qwe=e-w;
		long long y=1000000000000000,ooo;
		for(int i=m+1;i<=n;i++)
		{
			int o=q2*(i-m);
			if(o-qwe>=0)
			{
				if(o-qwe<y)
				{
					y=o-qwe;
					ooo=i;
				}
			}	
			else
				if(qwe-o<y)
				{
					y=qwe-o;
					ooo=i;
				}
		}
		cout<<ooo;
	}
	else
	{
		qwe=w-e;
		if(e==w)
		{
			cout<<m;
			return 0;
		}
		long long y=1000000000000000,ooo;
		int zxc=m-1;
		for(int i=1;i<=zxc;i++)
		{
			int o=q2*(m-i);
			if(o-qwe>=0)
			{
				if((o-qwe)<y)
				{
					y=o-qwe;
					ooo=i;
				}
			}	
			else
				if((qwe-o)<y)
				{
					y=qwe-o;
					ooo=i;
				}
		}
		cout<<ooo;
	}
}
2020/10/26 20:36
加载中...