https://codeforces.com/problemset/problem/478/B
一道简单的构造题,只不过要把情况分清楚,以下是我用手写的解题思路,字不太好看多多包涵!
以下是代码实现
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
ll n,m;
cin>>n>>m;
ll mi=0,mx=0;
ll x1=0,x2=0;//最小值的两个数
x1=n/m,x2=n/m+n%m;
if(n%m>1)
{
x2=n/m;
x1=(n/m)+1;
mi=((x1*x1-x1)/2)*(n%m)+((x2*x2-x2)/2)*(m-(n%m));
}
else mi=((x1*x1-x1)/2)*(m-1)+(x2*x2-x2)/2;
mx=((n-(m-1))*(n-(m-1))-(n-(m-1)))/2;
cout<<mi<<" "<<mx;
return 0;
}