B. Random Teams1300 / 组合数学
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Random Teams1300 / 组合数学相关的知识,希望对你有一定的参考价值。
https://codeforces.com/problemset/problem/478/B
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL n,m;
LL get1(LL n,LL m)//最小 尽量的均分
{
LL b=n/m;
if(n%m)//不可以平均分
{
int temp=n-b*m;
LL sum=0;
for(int i=1;i<=m;i++)
{
if(temp) sum+=(b+1)*b/2,temp--;
else sum+=b*(b-1)/2;
}
return sum;
}else//可以平均分
{
return m*b*(b-1)/2;
}
}
LL get2(LL n,LL m)//最大: 只有一个队人数最多,其它的队人都只要1个
{
n=n-(m-1);
return n*(n-1)/2;
}
int main(void)
{
cin>>n>>m;
LL minv=get1(n,m);
LL maxv=get2(n,m);
cout<<minv<<" "<<maxv<<endl;
}
以上是关于B. Random Teams1300 / 组合数学的主要内容,如果未能解决你的问题,请参考以下文章