社区讨论

72分求调

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@m06kq6pg
此快照首次捕获于
2024/08/23 18:33
2 年前
此快照最后确认于
2025/11/04 22:37
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
using namespace std;
const long long N=2e31;
int main(){
	long long n;
	scanf("%lld",&n);
	long long c[n+1];
	for(int i=1;i<=n;i++)
	scanf("%lld",&c[i]);
	long long m,p1,s1,s2;
	scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);
	c[p1]+=s1;
	long long qishi_hu=0,qishi_long=0;
	for(int i=1;i<m;i++)
	qishi_long+=c[i]*(m-i);
	for(int i=m+1;i<=n;i++)
	qishi_hu+=c[i]*(i-m);
	long long qishicha=abs(qishi_hu-qishi_long);
	if(qishicha==0){
		cout<<m;
		return 0;
	}
	long long mn=N,mn_i=1;
	int mn_fb;
	for(int i=1;i<=n;i++){
		if(i==m)
		continue;
		if(i<m){
			qishi_long+=(m-i)*s2;
			mn=min(mn,abs(qishi_long-qishi_hu));
			if(mn<mn_fb)mn_i=i;
			qishi_long-=(m-i)*s2;
		}
		if(i>m){
			qishi_hu+=(i-m)*s2;
			mn=min(mn,abs(qishi_long-qishi_hu));
			if(mn<mn_fb)mn_i=i;
			qishi_hu-=(i-m)*s2;
		}
		mn_fb=mn;
	}
	cout<<mn_i<<endl;
	return 0;
}
                     
玄关

回复

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

正在加载回复...