题意:
将N个人分成M组,每组至少一人,在比赛结束时,同一组的人两两之间都会成为朋友,
不同分组的分组方案得到的朋友对数不同。
你的任务是求出最小和最大的朋友对数。
数据范围:m<=n<=1e9
解法:
ma:
令(m-1)组只有一个人,剩下一组n-(m-1)个人
mi:
平均分成m组即可
code:
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(0);
int n,m;cin>>n>>m;
int ma=0,mi=0;
int t=n-(m-1);
ma=t*(t-1)/2;
t=n/m;
int tt=n%m;
mi=t*(t-1)/2*(m-tt);
mi+=t*(t+1)/2*tt;
cout<<mi<<' '<<ma<<endl;
return 0;
}