社区讨论

WA蒟蒻求助,急!!!

P5016[NOIP 2018 普及组] 龙虎斗参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo837an2
此快照首次捕获于
2023/10/27 12:02
2 年前
此快照最后确认于
2023/10/27 12:02
2 年前
查看原帖
代码如下:
CPP
#include<iostream>
#include<cmath>
using namespace std;
long long tiger=0,dragon=0,s1,s2,p1,p2,m,n,b[101],min_num=9223372036854775807;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	cin>>m>>p1>>s1>>s2;
	for(int i=1;i<m;i++){
		dragon+=i*b[i];
	}
	for(int i=m+1;i<=n;i++){
		tiger+=(i-m)*b[i];
	}
	if(p1<m) dragon+=p1*s1;
	if(p1>m) tiger+=(p1-m)*s1;
	for(int i=1;i<=n;i++){
		if(i<m){
			dragon+=i*s2;
			if(abs(dragon-tiger)<min_num){
				min_num=abs(dragon-tiger);
				p2=i;
			}
			dragon-=i*s2;
		}
		if(i==m){
			if(abs(dragon-tiger)<min_num){
				min_num=abs(dragon-tiger);
				p2=i;
			}
		}
		if(i>m){
			tiger+=(i-m)*s2;
			if(abs(dragon-tiger)<min_num){
				min_num=abs(dragon-tiger);
				p2=i;
			}
			tiger-=(i-m)*s2;
		} 
	}
	cout<<p2;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...