求助
查看原帖
求助
753554
kn_wlq楼主2023/3/23 22:40
#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/23 22:40
加载中...