80分求解!!!
查看原帖
80分求解!!!
457678
zyak楼主2022/8/13 16:35
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n;
int m,p1,p2,s1,s2;
int a[100000+5];
long long suml=0,sumr=0;
long long cha;	
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	scanf("%d%d%d%d",&m,&p1,&s1,&s2);
	for(int i=1;i<m;i++)
	{
		suml=suml+a[i]*(m-i);
	}
	for(int i=m+1;i<=n;i++)
	{
		sumr=sumr+a[i]*(i-m);
	}
	if(p1<m)
	{
		suml=suml+(m-p1)*s1;
	}
	if(p1>m)
	{
		sumr=sumr+(p1-m)*s1;
	}
	if(p1==m)
	{
		suml=suml;
		sumr=sumr;
	}
	cha=abs(suml-sumr);
	int k=cha/s2;
	if(abs(k*s2-cha)>abs((k+1)*s2-cha))
	{
		k=k+1;
	}
	if(cha==0)
	{
		p2=m;
	}
	if(suml>sumr)
	{
		if(s2>=2*cha)
		{
			p2=m;
		}
		else
		{
			p2=m+k;
		}
	}
	if(suml<sumr)
	{
		if(s2==2*cha)
		{
			p2=m-1;
		}
		else
		{
			if(s2>2*cha)
			{
				p2=m;
			}
			else
			{
				p2=m-k;
			}
		}
	}
	if(p2>n)
	{
		p2=n;
	}
	if(p2<=0)
	{
		p2=0;
	}
	printf("%d",p2);
	return 0;
}
2022/8/13 16:35
加载中...