int data[13], lucky[6]; /* data[13]用來裝測資,lucky[6]是堆疊用 */
int top= -1;
void DFS_lotto(int now, int total) /* now 是目前要丟進堆疊的數,total 是題目的 k */
{
int i;
lucky[++top]=data[now];
if(top+1==6) /* 集滿 6個 lucky number 就印 */
{
for(i=0;i<5;i++)
printf("%d ",lucky[i]);
printf("%d\n", lucky[i]); /* 最後一個不能有空白 */
}
else
{
while(now+1<total)
DFS_lotto(++now, total); /* 把下一個數丟進 DFS */
}
top--; /* 每次離開一個 DFS 要彈出堆疊中一個數 */
}
以下抱怨 :
很多AC 的都會先 WA 跟 OLE
應該是因為每一行最後有空白而 WA,以及在讀到 k=0 前先換一行而 OLE
真的很嚴格,考驗我們安排的 I/O 順序