社区讨论
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 条回复,欢迎继续交流。
正在加载回复...