#include<iostream>
#include<stdio.h>
using namespace std;
int a[100],b[100];
void dfs(int a[],int b[],int n,int m,const int M)
{
int i;
for(i=n;i>=m;i--)
{
b[m-1]=i-1;
if(m>1) dfs(a,b,i-1,m-1,M);
else
{
for(int j=M-1;j>=0;j--)
cout<<a[b[j]]<<" ";
cout<<endl;
}
}
}
int main()
{
int i,j,n,m;
while(~scanf("%d%d",&n,&m))
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
dfs(a,b,n,m,m);
}
return 0;
}
排列组合代码实现
最新推荐文章于 2024-02-13 18:39:01 发布