| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 39802 | Chasing2575 | 【S】T2 | C++ | 通过 | 100 | 16 MS | 1044 KB | 770 | 2026-02-02 15:35:56 |
#include <bits/stdc++.h> using namespace std; #define int long long int n,b,x,c[100005],m,ans,sum; int chk(int a){ sum=0; for(int i=1;i<=n;i++){ if(c[i]<=a) sum+=b*c[i]*(c[i]-1)/2; else{ long long z=c[i]%a,t=c[i]/a; sum+=t*t*(a-1)*a/2*b+(((a-1)*t)*2+z-1)*z/2*b; } } sum-=x*(a-1); return sum; } signed main(){ cin>>n>>b>>x; for(int i=1;i<=n;i++) cin>>c[i]; sort(c+1,c+1+n); if(x<=b){ for(int i=1;i<=n;i++){ ans+=b*(c[i]*(c[i]-1))/2; } cout<<ans-c[n]*x+x; return 0; }int l=1; for(int i=log2(c[n]*2);i>=0;i--){ if(chk(l+(1<<i))<chk(l+(1<<i)+1)) l+=(1<<i); } cout<<chk(l+1); return 0; }