社区讨论
80分求调
P5016[NOIP 2018 普及组] 龙虎斗参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mk9ldebm
- 此快照首次捕获于
- 2026/01/11 18:29 上个月
- 此快照最后确认于
- 2026/01/15 18:30 上个月
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 条回复,欢迎继续交流。
正在加载回复...