#2298. 【入门】组合输出

【入门】组合输出

说明

排列与组合是常用的数学方法,其中组合就是从nn个元素中抽出xx个元素(不分顺序且xnx\leqslant n),表示为CnxC_{n}^{x},我们可以简单地将nn个元素理解为自然数1,2,…,nn,从中任取xx个数。

比如举个简单的例子,给定数组 arr[3] = {1,2,3},我们要在arr中任意选择两个数,也即 C32C_{3}^{2} =32/21 3*2/2*1= 3种,分别对应的组合为:(1 2)(1 3)(2 3),这里不考虑重复,也即(2 3)和(3 2)认为是一个组合。

现要求你用递归的方法输出CnxC_{n}^{x}所有组合

输入格式

输入两个整数n,xn,x

输出格式

输出CnxC_{n}^{x}所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,元素与元素之间有一个空格,所有的组合也按字典顺序。

样例

6 3
1 2 3
1 2 4
1 2 5
1 2 6
1 3 4
1 3 5
1 3 6
1 4 5
1 4 6
1 5 6
2 3 4
2 3 5
2 3 6
2 4 5
2 4 6
2 5 6
3 4 5
3 4 6
3 5 6
4 5 6

数据范围

1xn201\leqslant x\leqslant n\leqslant 20