哎呀......超时了
查看原帖
哎呀......超时了
537365
zousilin楼主2021/10/4 10:48
#include<iostream>

#define max 100000

using namespace std;

int jdz(int i){
	if(i>0){
		return i;
	}
	return 0-i;
}

int getmin(int a[]){
	int min=a[0],biao;
	for(int i=0;i<max&&a[i]!=0&&a[i+1]!=0;i++){
		if(min>a[i])biao=i;
	}
	return biao;
}

int main(){
	int by[max],qs[max],chaju[max];		//兵营中的兵数和气势 
	int n,m,p,tianb,paib,lq=0,hq=0;		//天降神兵的兵营,天降神兵,自己可派的兵,龙气,虎气 
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>by[i];
		qs[i]=by[i];
	}
	cin>>m>>p>>tianb>>paib;
	qs[p]+=tianb;
	for(int i=0;i<n;i++){
		if(i!=m){
			qs[i]=qs[i]*jdz(i-m);
		}
	}
	for(int i=0;i<m-1;i++){
		lq+=qs[i];
	}
	for(int i=m;i<n;i++){
		hq+=qs[i];
	}
	for(int i=0;i<n;i++){
		if(i<m-1){
			chaju[i]=jdz(lq+(m-i)*paib-hq);
		}
		if(i=m-1)chaju[i]=jdz(lq-hq);
		if(i>m-1){
			chaju[i]=jdz(hq+(i-m)*paib-lq);
		}
	}
	cout<<getmin(chaju)<<endl;
	
	return 0;
} 
2021/10/4 10:48
加载中...