求助,龙虎斗(5个WA)
  • 板块题目总版
  • 楼主xiaozeming
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/17 10:15
  • 上次更新2023/11/3 09:24:12
查看原帖
求助,龙虎斗(5个WA)
793341
xiaozeming楼主2023/7/17 10:15
#include<bits/stdc++.h>
using namespace std;
long long attck[100000],f[100000];
int main()
{
    long long n,m,p1,s1,s2,xx=0,kk=0,Min=1000,mic;
    cin>>n;
    for(long long i=1;i<=n;i++){
        cin>>attck[i];
    }
    cin>>m>>p1>>s1>>s2;
    f[m]=0;
    for(long long i=1;i<m;i++){
        f[i]=1;
        xx+=attck[i]*(m-i);
    }
    for(long long i=n;i>m;i--){
        f[i]=2;
        kk+=attck[i]*(i-m);
    }
    if(f[p1]==1){
        xx+=s1*(m-p1);
    }
    else if(f[p1]==2){
        kk+=s1*(p1-m);
    }
    else{
        xx=xx;
    }
    for(int i=1;i<=n;i++){
        if(f[i]==1){
            xx+=s2*(m-i);
        }
        else if(f[i]==2){
            kk+=s2*(i-m);
        }
        else{
            xx=xx;
        }
        if(max(xx,kk)-min(xx,kk)<Min){
            Min=max(xx,kk)-min(xx,kk);
            mic=i;
        }
        if(f[i]==1){
            xx-=s2*(m-i);
        }
        else if(f[i]==2){
            kk-=s2*(i-m);
        }
        else{
            xx=xx;
        }
    }
    cout<<mic;
    return 0;
}
2023/7/17 10:15
加载中...