80分,求助!!!
查看原帖
80分,求助!!!
1254203
LQZl楼主2024/10/22 20:46
#include <bits/stdc++.h>
using namespace std;
int n,c[100005],m,p1,s1,s2,p2;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>c[i];
    }
    cin>>m>>p1>>s1>>s2;
    int sum_l=0;
    for(int i=1;i<=m-1;i++){
        sum_l+=c[i]*(m-i);
    }
    int sum_r=0;
    for(int i=m+1;i<=n;i++){
        sum_r+=c[i]*(i-m);
    }
    if(p1<m)sum_l+=s1*(m-p1);
    if(p1>m)sum_r+=s1*(p1-m);
    int new_c,min_c=2e9;
    for(int i=1;i<=n;i++){
        if(i<m){
            new_c=abs(sum_l+s2*(m-i)-sum_r);
        }
        if(i>m){
            new_c=abs(sum_l-(sum_r+s2*(i-m)));
        }
        if(i==m){
            new_c=abs(sum_l-sum_r);
        }
        if(new_c<min_c){
            min_c=new_c;
            p2=i;
        }
    }
    cout<<p2;
    return 0;
}
2024/10/22 20:46
加载中...