求调56分,抱歉码风可能比较丑

P5016 [NOIP2018 普及组] 龙虎斗

太看不懂了,可以参考我的 ``` #include<bits/stdc++.h> using namespace std; long long n,a[100100],l=0,r=0,m,p,s1,s2,ans; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>m>>p>>s1>>s2; for(int i=1;i<m;i++) l+=a[i]*(m-i); for(int i=m+1;i<=n;i++) r+=a[i]*(i-m); if(p<m) l+=s1*(m-p); if(p>m) r+=s1*(p-m); long long o=abs(l-r),sum; ans=m; if(l<r) { for(int i=1;i<m;i++) { sum=abs(r-(l+(a[i]+s2)*(m-i)-a[i]*(m-i))); if(sum<o) { ans=i; o=sum; } } } if(l>r) { for(int i=m+1;i<=n;i++) { sum=abs(l-(r+(a[i]+s2)*(i-m)-a[i]*(i-m))); if(sum<o) { ans=i; o=sum; } } } cout<<ans; } ```
by CGk_by_SA @ 2023-11-05 10:39:36


|