P5016 40分向大佬求救
  • 板块灌水区
  • 楼主Leaf59
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/14 21:09
  • 上次更新2024/10/14 22:40:53
查看原帖
P5016 40分向大佬求救
1401647
Leaf59楼主2024/10/14 21:09
#include<bits/stdc++.h>
using namespace std;
long long arr[100005],n,m,s1,s2,p1,sum1,sum2;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i];
    }
    cin>>m>>p1>>s1>>s2;
    for(int i=1;i<m;i++){
        sum1+=arr[i]*(m-i);
    }
    for(int i=n;i>m;i--){
        sum2+=arr[i]*(i-m);
    }
    int min=100005,mini=1;
    if(p1<m){
        sum1+=s1*(m-p1);
    }
    else if(p1>m){
        sum2+=s1*(p1-m);
    }
    //printf("龙方气势:%d\n虎方气势:%d\n",sum1,sum2);
    if(sum1<sum2){
        for(int i=1;i<m;i++){
            int sum=sum1+(s2*(m-i));
            if(abs(sum-sum2)<min){
                min=abs(sum-sum2);
                mini=i;
            }
        }
    }
    else if(sum2<sum1){
        for(int i=n;i>m;i--){
            int sum=sum2+(s2*(i-m));
            if(abs(sum2-sum)<=min){
                min=abs(sum1-sum);
                mini=i;
            }
        }
    }
    else if(sum1==sum2){
    	mini=m;
	}
    cout<<mini;
    return 0;
}
2024/10/14 21:09
加载中...