递归卡了我好久,坑,用了DFS
//
// main.cpp
// p2245
//
// Created by Mr.Xue on 17/2/12.
// Copyright © 2017年 Mr.Xue. All rights reserved.
//
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int N,a[20][20],y[6],flag;
void DFS(int s,int sum)
{
if(s>N)
return;
if(sum>6)
return;
int i=s;
while(i<=N)
{
y[sum]=a[s][i];
if(sum==6)
{
for(int j=1;j<=6;j++)
printf("%d ",y[j]);
printf("\n");
}
i++;
DFS(i,sum+1);
}
}
int main()
{
flag=0;
while(scanf("%d",&N)&&N!=0)
{
for(int i=1;i<=N;i++)
scanf("%d",&a[1][i]);
if(flag!=0)
printf("\n");
flag=1;
for(int i=2;i<=N;i++)
for(int j=1;j<=N;j++)
a[i][j]=a[1][j];
flag=0;
DFS(1,1);
}
return 0;
}
/*
7 1 2 3 4 5 6 7
8 1 2 3 5 8 13 21 34
7 1 2 3 4 5 6 7
0
*/