社区讨论

为啥开了long long还是80

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mkfbeiaz
此快照首次捕获于
2026/01/15 18:36
上个月
此快照最后确认于
2026/01/18 11:45
上个月
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
long long  a[100005],sum[100005],n,m,p1,p2,s1,s2,lsum=0,hsum=0,minn=0;
int main() 
{
	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) lsum+=(m-i)*a[i];
		else if(i>m) hsum+=(i-m)*a[i];
		if(i==p1){
			if(i==m) break;
			else if(i<m) lsum+=(m-i)*s1;
			else hsum+=(i-m)*s1;
		}
	}
	sum[0]=abs(lsum-hsum);
	for(int i=1;i<=n;i++){
        int w=lsum,c=hsum;
		if(i<m) lsum+=(m-i)*s2;
		else if(i>m) hsum+=(i-m)*s2; 
		sum[i]=max(lsum,hsum)-min(lsum,hsum);  
		lsum=w;hsum=c;
		if(min(sum[minn],sum[i])==sum[i]) minn=i;                                                                                                      
	} 
	cout<<minn;
	return 0;
}

回复

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

正在加载回复...