P5016,大佬帮看一看,谢谢!!!!!!!
查看原帖
P5016,大佬帮看一看,谢谢!!!!!!!
332645
linhe4034楼主2020/6/25 12:22

Markdown 只有80分,超时了(TLE),帮看一看!!!!!

#include<bits/stdc++.h>
using namespace std;
int tiger_power=0,part_number;
int dragen_power=0,part_man[100010];
int part1,part2,man1,man2,middle;
int find_the_min(){
	int check_tiger=0,check_dragen=0;
	int left_to_right,Min=0x3f3f3f3f;
	int underline;
	for(int i=0;i<part_number;i++){
		check_tiger=0;
		check_dragen=0;
		part_man[i]+=man2;
		for(int j=0;j<part_number;j++){
			if(j<middle){
				check_dragen+=part_man[j]*(middle-j);
			}else if(j>middle){
				check_tiger+=part_man[j]*(j-middle);
			}else{
				continue;
			}
		}
		part_man[i]-=man2;
		if(check_tiger>check_dragen){
			left_to_right=check_tiger-check_dragen;
		}else{
			left_to_right=check_dragen-check_tiger;
		}
		if(Min>left_to_right){
			Min=left_to_right;
			underline=i;
		}
	}
	return underline+1;
}
int main(){
	cin>>part_number;
	for(int i=0;i<part_number;i++){
		cin>>part_man[i];
	}
	cin>>middle>>part1>>man1>>man2;
	middle-=1;
	part1-=1;
	part_man[part1]+=man1;
	for(int i=0;i<part_number;i++){
		if(i<middle){
			dragen_power+=part_man[i]*(middle-i);
		}else if(i>middle){
			tiger_power+=part_man[i]*(i-middle);
		}else{
			continue;
		}
	}
	part2=find_the_min();
	cout<<part2;
} 

欢迎指出不足!!

2020/6/25 12:22
加载中...