80分求助
查看原帖
80分求助
117947
Pluto_tears楼主2021/10/20 23:49

求助 80分

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long n,m,a[100005],p,s1,s2,dr=0,ti=0,ans,min=5*10e18;
	cin >> n;
	for(int i = 1;i <= n;i++)cin >> a[i];
	cin >> m >> p >> s1 >> s2;
	for(int i = 1;i <= m-1;i++)
	{
	dr+=a[i]*(m-i);
	}
	for(int i = m+1;i<=n;i++)
	{
	ti+=a[i]*(i-m);
	}
	if(p<m)dr+=s1*(m-p);
    else ti+=s1*(p-m);
    if(dr==ti)ans=m;
    else if(dr<ti)
    {
      for(int i = 1;i <= m;i++)
	{
	int now,q;now=dr;
    now+=s2*(m-i);
    q=abs(now-ti);
    if(q<min)
    {
      min=q;
      ans=i;
    }
    }
    }
    else
{
for(int i = m;i<=n;i++)
{
int now,q;
now=ti;
now+=s2*(i-m);
q=abs(now-dr);
if(q<min)
{
min=q;
ans=i;
}
}
}
cout << ans;
	return 0;
}
2021/10/20 23:49
加载中...