您的位置:首页 > 其它

HDOJ 1342

2017-08-08 11:21 78 查看
经典深搜题目,水题

注意题目要求的输出,最后一组数据输出后不用再输出空行
http://acm.hdu.edu.cn/showproblem.php?pid=1342
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;

int s[15],k,a[15];
bool used[15];

void dfs(int num,int x){ //num记录第几个数 ,x记录扫描到s数组的当前位置
if (x==k && num<6) return;
if (num==6) {
for (int i=1;i<6;i++) printf("%d ",a[i]);
printf("%d\n",a[6]);
return;
}
for (int i=x+1;i<=k;i++){
a[num+1]=s[i];
dfs(num+1,i);
}
}

int main(){
cin>>k;
while (1){
for (int i=1;i<=k;i++){
scanf("%d",&s[i]);
}
for (int i=1;i<=k-5;i++) {
a[1]=s[i];
dfs(1,i);
}
cin>>k;
if (k!=0) printf("\n");
else break;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: