社区讨论

40分求助

P5016[NOIP 2018 普及组] 龙虎斗参与者 2已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo3jlz7f
此快照首次捕获于
2023/10/24 07:42
2 年前
此快照最后确认于
2023/10/24 07:42
2 年前
查看原帖
CPP
#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;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...