测试点信息
#include<iostream>
#include<cmath>
#define ll long long
using namespace std;
const int N = 1e5 + 10,MAX = 2147483647;
int b[N],nu[N];
int min_(ll a,ll b,ll &x,ll i){
if(a < b){
x = i;
return a;
}else{
return b;
}
}
int main(){
ll n,m,p1,s1,s2;
cin >> n;
for(ll i = 1;i <= n;i ++){
cin >> b[i];
}
cin >> m >> p1 >> s1 >> s2;
int lo = 0,hu = 0;
for(ll i = 1;i < m;i ++){
lo += (m - i) * b[i];
}
for(ll i = m + 1;i <= n;i ++){
hu += (i - m) * b[i];
}
if(p1 < m) lo += (m - p1) * s1;
else if(p1 > m) hu += (p1 - m) * s1;
ll ans = MAX,x = 1;
for(ll i = 1;i <= m;i ++){
ans = min_(abs(lo - (hu + (i - m) * s2)),ans,x,i);
}
for(ll i = m + 1;i <= n;i ++){
ans = min_(abs(hu - (lo + (m - i) * s2)),ans,x,i);
}
cout << x << endl;
return 0;
}