#P411. 集合划分(setsub)

集合划分(setsub)

【问题描述】

设s是一个具有n个元素的集合,s={a1,a2,…,an},现将s划分成k个满足下 列条件的子集合s1.s2.….sk.且满足:

(1)s≠空集

(2)si∩sj= 空集 (1≤i,j≤k i≠j)

(3)sl∪s2∪s3∪…∪Sk=s

则称sI,s2,…,sk是集合s的一个划分。它相当于把s集合中的n个元素a1,a2,…,an放入k个(0<k≤n<30)无标号的盒子中,使得没有一个盒子为空。

请你确定n个元素a1,a2, …,an放入k个无标号盘子中去的划分数s(n,k)。

程序名:setsub

输入格式:

输入一行两个整数n,k。

输出格式:

输出一行一个整数,表示划分数。

输入样例:

4 3

输出样例:

6