给若干互不相等的数,求其所有的上升长度为六的子序列
无坑1A
#include <bits/stdc++.h>
using namespace std;
int n;
bool vis[15];
int a[15];
int ans[10];
void PrintAns()
{
for (int i=1;i<=6;i++)
{
if (i!=1)
printf(" ");
printf("%d",a[ans[i]]);
}
cout<<endl;
return;
}
void dfs(int k,int tt)
{
if (k==6)
{
PrintAns();
return ;
}
for (int i=tt;i<=n;i++)
{
if (!vis[i])
{
ans[k+1]=i;
vis[i]=true;
dfs(k+1,i+1);
vis[i]=false;
}
}
return;
}
void Gao()
{
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
scanf("%d",a+i);
sort(a+1,a+n+1);
dfs(0,1);
}
int main()
{
bool fst=false;
// freopen("a.in","r",stdin);
while (cin>>n && n)
{
if (fst) cout<<endl;
Gao();
fst=true;
}
return 0;
}