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 順序