40分求助
查看原帖
40分求助
634807
liguorui2022楼主2022/12/14 19:18
#include<bits/stdc++.h>
using namespace std;
long long a[100000],h=0,l=0,m,n;
struct node
{
	long long id,z;
}c[1000000];
void u(long long w,long long z)
{
	int i;
	a[w]+=z;
	for(i=1;i<m;i++)
	{
		h=h+a[i]*abs(i-m);
	}
	for(i=m+1;i<=n;i++)
	{
		l=l+a[i]*abs(i-m);
	}
	a[w]-=z;
}
int cmp(node a,node b)
{
	if(a.z<b.z)
	{
		return a.z<b.z;
	}
	else
	{
		return a.id<b.id;
	}
}
int main()
{
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
//2×(4-1)+3×(4-2)+2×(4-3)=14
//2×(5-4)+(3+5)×(6-4)=18
	long long i,p1,s1,s2;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	cin>>m>>p1>>s1>>s2;
	a[p1]+=s1;
	for(i=1;i<=n;i++)    
	{
		u(i,s2);
//		cout<<h<<' '<<l<<'\n';
		c[i].z=abs(h-l);
		c[i].id=i;
		h=l=0;
	}

	sort(c+1,c+1+n,cmp);
	cout<<c[1].id;
	return 0;
}

2022/12/14 19:18
加载中...