Lotto

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 1887    Accepted Submission(s): 919

Problem Description
In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular strategy to play Lotto - although it doesn't increase your chance of winning - is to select a subset S containing k (k>6) of these 49
numbers, and then play several games with choosing numbers only from S. For example, for k=8 and S = {1,2,3,5,8,13,21,34} there are 28 possible games: [1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ... [3,5,8,13,21,34].




Your job is to write a program that reads in the number k and the set S and then prints all possible games choosing numbers only from S.
 
Input
The input file will contain one or more test cases. Each test case consists of one line containing several integers separated from each other by spaces. The first integer on the line will be the number k (6 < k < 13). Then k integers,
specifying the set S, will follow in ascending order. Input will be terminated by a value of zero (0) for k.

 
Output
For each test case, print all possible games, each game on one line. The numbers of each game have to be sorted in ascending order and separated from each other by exactly one space. The games themselves have to be sorted lexicographically,
that means sorted by the lowest number first, then by the second lowest and so on, as demonstrated in the sample output below. The test cases have to be separated from each other by exactly one blank line. Do not put a blank line after the last test case.

 
Sample Input
7 1 2 3 4 5 6 7
8 1 2 3 5 8 13 21 34
0
 
Sample Output
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7 1 2 3 5 8 13
1 2 3 5 8 21
1 2 3 5 8 34
1 2 3 5 13 21
1 2 3 5 13 34
1 2 3 5 21 34
1 2 3 8 13 21
1 2 3 8 13 34
1 2 3 8 21 34
1 2 3 13 21 34
1 2 5 8 13 21
1 2 5 8 13 34
1 2 5 8 21 34
1 2 5 13 21 34
1 2 8 13 21 34
1 3 5 8 13 21
1 3 5 8 13 34
1 3 5 8 21 34
1 3 5 13 21 34
1 3 8 13 21 34
1 5 8 13 21 34
2 3 5 8 13 21
2 3 5 8 13 34
2 3 5 8 21 34
2 3 5 13 21 34
2 3 8 13 21 34
2 5 8 13 21 34
3 5 8 13 21 34
 
Source
 
Recommend
JGShining   |   We have carefully selected several similar problems for you:  1346 1361 1374 1370 1347

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n,num[10010],a[10010],vis[10010];
void dfs(int p,int d)
{
if(d==6)
{
for(int i=0;i<=5;i++)
{
if(i)
printf(" ");
printf("%d",a[i]);
}
printf("\n");
return ;
}
if(p>=n) return ;
for(int i=p;i<n;i++)
{
if(!vis[i])
{
vis[i]=1;
a[d]=num[i];
dfs(i+1,d+1);
vis[i]=0;
}
}
}
int main()
{
int flog=0;
while(scanf("%d",&n),n)
{
if(flog) printf("\n");
flog=1;
memset(num,0,sizeof(num));
memset(vis,0,sizeof(vis));
memset(a,0,sizeof(a));
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
sort(num,num+n);
dfs(0,0);
}
return 0;
}

最新文章

  1. windows 环境和linux环境下 ping命令的区别:
  2. P6 EPPM 安装与配置指南 16 R1 2016.4
  3. org.apache.http.client.CircularRedirectException: Circular redirect to &quot;http://xxx&quot;问题解决
  4. [视频]物联网应用-ARM mbed-来至MultiTech Systems的解决方案
  5. 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它
  6. MINUS,INTERSECT,UNION浅析
  7. HTML5之字体
  8. 解决Mac OS X Lion狮子系统及win7多分区教程
  9. In Action(最短路+01背包)
  10. 50一个Android开发技巧(01 利用好layout_weight属性)
  11. ubuntu 禁用快捷键
  12. Java Web应用集成OSGI
  13. springboot(二十):使用spring-boot-admin对spring-boot服务进行监控
  14. 服务治理利器Hystrix-理论篇
  15. python面试题---收藏的笔记
  16. ROS * 了解xacro的编写
  17. Linux下启动Oracle服务和监听程序
  18. rsyslog和logrotate
  19. Tomcat8源码笔记(三)Catalina加载过程
  20. NB-IoT协议及其PSM

热门文章

  1. Vir-manager 创建虚拟机
  2. dockerhub 推送镜像
  3. ocrsearch的横屏转竖屏的解决方案
  4. 调用Windows属性窗口
  5. &amp;quot;duplicate symbol for architecture i386&amp;quot; 解决的方法
  6. 小贝_mysql select5种子句介绍
  7. JAVA学习第四十五课 — 其它对象API(一)System、Runtime、Math类
  8. Pocket英语语法---三、英语动词的特点是什么
  9. Numpy科学计算工具
  10. 数据结构之fhq-treap