社区讨论

40pts球条,玄关

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m2n91036
此快照首次捕获于
2024/10/24 19:57
去年
此快照最后确认于
2025/11/04 16:18
4 个月前
查看原帖
这是代码:
CPP
#include <iostream>
#include <cmath>
using namespace std;
int main(){
	long long n,m,a[1000],dr=0,ti=0;
	long long p1,s1,s2;
	long long sum,ans;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	cin>>m>>p1>>s1>>s2;
	for(int i=1;i<=n;i++){
		if(i<m){
			dr+=a[i]*(m-i);
		}
		if(i>m){
			ti+=a[i]*(i-m);
		}
	}
	a[p1]+=s1;
	for(int i=1;i<=n;i++){
		if(i==m){
			continue;
		}
		if(i<m){
			dr+=(m-i)*a[i];
			continue;
		}
		ti+=(i-m)*a[i] ;
	}
		ans=abs(dr-ti);
		long long p2=m;
	for (int i=1;i<=n;i++){
		if(i<m){
			long long sum=s2*(m-i);
			if (abs(dr-ti+sum)<ans){
				ans=abs(dr-ti+sum) ;
				p2=i;
			}
		}
		if(i>m){
			int sum=s2*(i-m);
			if(abs(dr-ti-sum)<ans){
			ans=abs(dr-ti-sum);
			p2=i;
			}
		}
	}
	cout<<p2;
}

回复

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

正在加载回复...