题目描述
输入
输出
代码(作者懒得写批注了,也方便各位兄弟提交)
#include<bits/stdc++.h>
using
namespace
std;
long
long
n,a[10000001];
long
long
m,p,s1,s2,sum1,sum2,ans=INT_MAX,num;
int
main()
{
scanf
(
"%lld"
,&n);
for
(
long
long
i=1; i<=n; i++)
scanf
(
"%lld"
,&a[i]);
scanf
(
"%lld%lld%lld%lld"
,&m,&p,&s1,&s2);
a[p]+=s1;
for
(
long
long
i=1; i<m; i++)
{
sum1+=
abs
(m-i)*a[i];
}
for
(
long
long
i=m+1; i<=n; i++)
{
sum2+=
abs
(i-m)*a[i];
}
if
(sum1<sum2)
{
for
(
long
long
i=1; i<=m; i++)
{
sum1+=s2*
abs
(i-m);
if
(ans>
abs
(sum1-sum2))
{
ans=
abs
(sum1-sum2);
num=i;
}
sum1-=s2*
abs
(i-m);
}
}
if
(sum1==sum2)
{
ans=0;
num=m;
}
if
(sum1>sum2)
{
for
(
long
long
i=m; i<=n; i++)
{
sum2+=s2*
abs
(i-m);
if
(ans>
abs
(sum1-sum2))
{
ans=
abs
(sum1-sum2);
num=i;
}
sum2-=s2*
abs
(i-m);
}
}
printf
(
"%lld\n"
,num);
return
0;
}
希望大家采纳,顺便给一个好评,谢谢了!