• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. vector<int>lotto;
    6.  
    7. int dp[20],n;
    8.  
    9. bool taken[60];
    10.  
    11. void call(int position)
    12. {
    13. int len,i;
    14.  
    15. len = lotto.size();
    16.  
    17. if(len==6)
    18. {
    19. printf("%d",lotto[0]);
    20.  
    21. for(i=1;i<len;i++)
    22. {
    23. printf(" %d",lotto[i]);
    24. }
    25. puts("");
    26. }
    27.  
    28. for(i=position;i<=n;i++)
    29. {
    30. if(taken[i]==false)
    31. {
    32. taken[i] = true;
    33.  
    34. lotto.push_back(dp[i]);
    35.  
    36. call(i);
    37.  
    38. taken[i] = false;
    39.  
    40. lotto.pop_back();
    41. }
    42. }
    43. }
    44.  
    45. int main()
    46. {
    47. int i,tc=0;
    48.  
    49. while(scanf("%d",&n)&&n)
    50. {
    51. for(i=1;i<=n;i++)
    52. {
    53. scanf("%d",&dp[i]);
    54. }
    55.  
    56. if(tc)puts("");
    57.  
    58. tc = 1;
    59.  
    60. call(1);
    61.  
    62. lotto.clear();
    63.  
    64. memset(taken,false,sizeof taken);
    65.  
    66. }
    67.  
    68. return 0;
    69. }
    70.