80分求助!
查看原帖
80分求助!
764666
LostKeyToReach楼主2022/10/15 16:10

为什么80分

/*IDE:CodeBlocks*/
#include <bits/stdc++.h>
using namespace std;
long long n,c[10000],m,p1,s1,s2,ans=0,l=0,r=0;
int main(){
    cin>>n;
    for(long long i=1;i<=n;i++) cin>>c[i];
    cin>>m>>p1>>s1>>s2;
    for(long long i=1;i<=m-1;i++) l+=c[i]*abs(i-m);
    if(p1<m) l+=abs(p1-m)*s1;
    for(long long i=m+1;i<=n;i++) r+=c[i]*abs(i-m);
    if(p1>m) r+=abs(p1-m)*s1;
    long long minn=abs(l-r);
    for(long long i=1;i<=n;i++){
        if(i<m){
            if(abs(abs(l+abs(i-m)*s2)-r)<minn){
                minn=abs(abs(l+abs(i-m)*s2)-r);
                ans=i;
            }
        }
        if(i>m){
            if(abs(abs(r+abs(i-m)*s2)-l)<minn){
                minn=abs(abs(r+abs(i-m)*s2)-l);
                ans=i;
            }
        }
    }
    if(minn==abs(l-r)){
        cout<<m<<endl;
        return 0;
    }
    cout<<ans<<endl;
    return 0;
}


求大家相助……

2022/10/15 16:10
加载中...