提交时间:2026-02-02 19:07:29

运行 ID: 39822

#include<bits/stdc++.h> using namespace std; #define int long long int n,c[100005],b,x,sum,ans; int check(int mid){ int tp=0; for(int i=1;i<=n;i++){ int t1=c[i]/mid; int t2=c[i]%mid; tp+=c[i]*(c[i]-1)/2; tp-=t1*t1*mid/2; tp-=t2*t1*mid; } return tp*b-(mid-1)*x; } signed main(){ cin>>n>>b>>x; int tp=0; for(int i=1;i<=n;i++){ cin>>c[i]; sum+=c[i]; } int l=1,r=sum; while(l<=r){ int mid=(l+r)>>1; if(check(mid)<=check(mid+1))l=mid+1; else r=mid-1; } cout<<check(l)<<endl; return 0; } /* */