44分求助
查看原帖
44分求助
224791
W_churchill楼主2020/10/25 20:32

为什么会错了啊。。。。

#include <bits/stdc++.h>
using namespace std;
int n,m,p,s1,s2,c[100010],lm,hm,minm=1000000000,sum,num;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>c[i];
	cin>>m>>p>>s1>>s2;
	c[p]+=s1;
	for(int i=1;i<m;i++)
		lm+=(m-i)*c[i];
	for(int i=m+1;i<=n;i++)
		hm+=(i-m)*c[i];
	if(max(lm,hm)==lm)
	{
		for(int i=m+1;i<=n;i++)
		{
			sum=(i-m)*s2;
			if(abs(lm-hm-sum)<minm)
			{
				minm=abs(lm-hm-sum);
				if(minm==0)
				{
					cout<<i<<endl;
					return 0;
				}
				num=i;
			}
		}
	}
	else
	{
	 	for(int i=1;i<m;i++)
		{
			sum=(m-i)*s2;
			if(abs(hm-lm-sum)<minm)
			{
				minm=abs(hm-lm-sum);
				if(minm==0)
				{
					cout<<i<<endl;
					return 0;
				} 
				num=i;
			}
		}
	}
	cout<<num<<endl;
	return 0;
}

垃圾代码大家一定都能看懂吧!!

2020/10/25 20:32
加载中...