开会
-
描述
-
在南阳理工学院,经常会在小礼堂举办活动、开大型会议,多数情况下都是从每个班里抽出一部分人去代表班级,但是也不排除会让全班一起去的时候。每次只确定了去的人数,没有规定要某某同学去。为了公平起见,一个同学不会去两次,那么每次都有多少种去的方案呢。
假设这个班级总共S个人,这一学期一共要在小礼堂开n次会议,每次去小礼堂的人数为Mi,那么对于每次会议有多少种去的方案呢?(保证n次去的总人数不超过班级总人数)
-
输入
-
多组测试数据。
每组数据第一行两个整数S,n;(0<S<18,0<n<10)
第二行n个数(M1,M2......Mn)(0<Mi<10);
输出
- 每组数据输出一行,n个数,代表每次去小礼堂的方案种数。 样例输入
-
10 21 112 32 1 1
样例输出
-
10 966 10 9
-
答案:
-
#include<stdio.h>
int main()
{
long long int s,n,m[11];
while(~scanf("%lld%lld",&s,&n))
{int i,j;
for(i=0;i<n;i++)
{
scanf("%lld",&m[i]);
}
for(i=0;i<n;i++)
{
long long int k=1;
for(j=0;j<m[i];j++)
{
k=k*s;
s--;
}s=s;
long long int t=1;
for(j=1;j<=m[i];j++)
{
t=t*j;
}
printf("%lld ",k/t);
}printf("\n");
}
}
-
-
多组测试数据。