80分 吐了
查看原帖
80分 吐了
371364
Biuld楼主2021/10/15 20:41

WAWA了最后55个点 求求了

#include<bits/stdc++.h>
//#define int long long
using namespace std;
int n,m,p,x,s,a[100001],f,v2;
long long c,v1=999999999,h[2];
signed main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	scanf("%d%d%d%d",&m,&p,&x,&s);
	a[p]+=x; a[m]=0;
	for(int i=1;i<=n;i++)
	{
		if(i==m) {f=1; continue;}
		if(f==0) h[f]+=a[i]*(m-i);
		else h[f]+=a[i]*(i-m);
	}
//	printf("%d %d\n",h[0],h[1]);
	if(h[0]==h[1])
	{
		printf("%d",m);
		return 0;
	}
	if(h[0]>h[1])
	{
		for(int i=m;i<=n;i++)
		{
			c=0; a[i]+=s;
			for(int j=m+1;j<=n;j++)
				c+=a[j]*(j-m);
			int ss=abs(h[0]-c);
			if(ss<=v1)
			{
				v1=ss;
				v2=i;
			}
			else
			{
				printf("%d",v2);
				return 0;
			}
			a[i]-=s;
		}
		printf("%d",v2);
		return 0;
	}
	if(h[0]<h[1])
	{
		for(int i=m;i>=1;i--)
		{
			c=0;
			a[i]+=s;
			for(int j=1;j<m;j++)
				c+=a[j]*(m-j);
			int ss=abs(c-h[1]);
			if(ss<v1)
			{
				v1=ss;
				v2=i;
			}
			else
			{
				printf("%d",v2);
				return 0;
			}
			a[i]-=s;
		}
		printf("%d",v2);
		return 0;
	}
}
2021/10/15 20:41
加载中...