发现大多数情况下将数字分作 , , 或 结果最优,
然后最后一次分解直接分作 .
最终 一定分成 个数字, 设为 ,
发现 之间恰好每个之间都乘了一次 累加后得到答案 .
于是答案为 , 可以证明当 最平均时答案最大 .
现将 分为 份, 然后将 平均分布到这 份中 .
#include<bits/stdc++.h>
typedef long long ll;
ll N;
ll K;
int main(){
freopen("Split.in", "r", stdin);
freopen("Split.out", "w", stdout);
scanf("%lld%lld", &N, &K);
ll Ans = (K+1-N%(K+1)) * (N/(K+1)) * (N - N/(K+1));
Ans += (N%(K+1))*(N/(K+1)+1)*(N-N/(K+1)-1);
printf("%lld
", Ans >> 1);
return 0;
}