wa啊啊啊啊啊啊
查看原帖
wa啊啊啊啊啊啊
462158
Gtortoise楼主2021/10/14 10:51

怎么回事呢??

#include<bits/stdc++.h>
using namespace std;
long long a[1000005]; 
int main()
{
	//freopen("lohu.in","r",stdin);
//	freopen("lohu.out","w",stdout); 
	long long n,i;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	long long m,k,c,s,p;
	long long x=0,y=0;
	cin>>m>>k>>c>>s;
	a[k]+=c;
	for( i=1;i<=k;i++)
	{
		x+=a[i]*(m-i);
	}
	for(i=m+1;i<=n;i++)
	{
		y+=a[i]*(i-m);
	}
	if(x==y)
	{
		p=m;//势力相等 
	}
	else if(x>y)
	{   //左边势力大,放右边 
		c=x-y;
		p=m;//默认为放m 
		for(i=m+1;i<=n;i++)
		{//没有更差就可以更小,要编号小的 
			if(abs(y+(i-m)*s-x)<c)
			{
				c=abs(y+(i-m)*s-x);
				p=i;
			}
		}
	}
	else
	{
		//右边势力大,放左边 
		c=y-x;
		p=m;
		for(int i=m-1;i>=1;i--)
		{
			if(abs(x+(m-i)*s-y)<=c)
			{
				c=abs(x+(m-i)*s-y);
				p=i;
			}
		}
	}
	cout<<p<<endl;
	return 0;
}

有没有大佬来救我

2021/10/14 10:51
加载中...