提交时间:2024-10-24 14:02:17
运行 ID: 33859
#include<bits/stdc++.h> #define int long long #define endl '\n' using namespace std; const int maxn=5e5+7; int n,b,x; int c[maxn]; int tmp[maxn]; int cnt[maxn]; inline void slv(){ cin>>n>>b>>x; for(int i=1;i<=n;i++)cin>>c[i],tmp[i]=c[i]; sort(tmp+1,tmp+n+1); int tot=unique(tmp+1,tmp+n+1)-tmp-1; for(int i=1;i<=tot;i++)cnt[i]=0; for(int i=1;i<=n;i++){ c[i]=lower_bound(tmp+1,tmp+tot+1,c[i])-tmp; cnt[c[i]]++; } int V=tmp[tot]; int ans=0; for(int k=1;k<=V;k++){ int cur=0; for(int i=1;i<=tot;i++){ int F0=tmp[i]/k,F1=(tmp[i]+(k-1))/k; int C1=tmp[i]%k,C0=k-C1; cur+=((tmp[i]*tmp[i]-F0*F0*C0-F1*F1*C1)*cnt[i]>>1); } cur=cur*b; ans=max(ans,cur-(k-1)*x); } cout<<ans<<endl; } signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); slv(); return 0; }