28分求助
查看原帖
28分求助
180406
lilong楼主2021/7/22 18:38
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int n,m,p1,s1,p2,s2,dragon,tiger,ans1=0x7fffffff,ans2=0x7fffffff,t;
long long c[1000001];
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%lld",&c[i]);
	scanf("%d%d%d%d",&m,&p1,&s1,&s2);
	c[p1]+=s1;
	for(int i=1;i<m;i++)
		dragon+=(m-i)*c[i];
	for(int i=m+1;i<=n;i++)	
		tiger+=(i-m)*c[i];
	if(dragon==tiger)
		ans2=m;
	if(dragon<tiger)
	{
		for(int i=1;i<m;i++)
		{
			int t=s2*(m-i);
			if(abs(tiger-(t+dragon))<ans1||abs(tiger-(t+dragon))==ans1&&i<ans2)
			{
				ans1=abs(tiger-(t+dragon));
				ans2=i;
			}
		}
	}
	if(tiger<dragon)
	{
		for(int i=m+1;i<=n;i++)
		{
			int t=s2*(i-m);
			if(abs(dragon-(t+tiger))<ans1||abs(dragon-(t+tiger))==ans1&&i<ans2)
			{
				ans1=abs(tiger-(t+dragon));
				ans2=i;
			}
		}
	}
	cout<<ans2;
	return 0;
}
2021/7/22 18:38
加载中...