求助
查看原帖
求助
753554
kn_wlq楼主2023/3/25 13:42
#include<iostream>
#include<cmath>
using namespace std;
int a[1000005];
int main(){
    long long s1,s2,p1,x,hs,ls,c,n,m;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    } 
    cin>>m>>p1>>s1>>s2;
    a[p1]+=s1;//天降神兵 
    for(int i=1;i<=m-1;i++){
        ls+=a[i]*(m-i);//计算龙的气势 
    }
    for(int i=m+1;i<=n;i++){
        hs+=a[i]*(i-m); //计算虎的气势 
    }
    x=m; 
    if(ls>hs){
        c=ls-hs;//算差 
        for(int i=m+1;i<=n;i++){
            hs+=s2*(i-m);//把s2的兵放进虎的兵营里 
            if(abs(hs-ls)<c){//判断两方的更新后气势差小于原气势差 
                c=abs(hs-ls);//更新原气势差 
                x=i;//记录s2放进的兵营编号 
        }
        }   
    }
    else if(hs>ls){
            c=hs-ls;//算差 
        for(int i=1;i<=m-1;i++){
            ls+=s2*(m-i);//把s2的兵放进虎的兵营里 
            if(abs(ls-hs)<c){//判断两方的更新后气势差小于原气势差 
                c=abs(ls-hs);//更新原气势差 
                x=i;//记录s2放进的兵营编号 
        }
        }
    }
    else{
        c=m;
    }
    cout<<x;
    return 0;
}

求dalao点拨,得了36分,蒟蒻一个

2023/3/25 13:42
加载中...