• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. int n, k;
    5. int A[102];
    6.  
    7. int DQ[102];
    8. void khoitao ()
    9. {
    10. for (int i=1; i<=k; i++) DQ[i]=0;
    11. }
    12.  
    13. int count=0;
    14. int F_DQ (int i, int vt)
    15. {
    16. if (k-i>n-vt) return -1;
    17. if (i==k+1)
    18. {
    19. count++;
    20. }
    21. else
    22. {
    23. if (i==1)
    24. {
    25. for (int j=vt; j<=n; j++)
    26. {
    27. DQ[i]=A[j];
    28. F_DQ (i+1, j+1);
    29. }
    30. }
    31. else
    32. {
    33. int kt=0;
    34. for (int j=vt; j<=n; j++)
    35. {
    36. if (A[j]>DQ[i-1])
    37. {
    38. DQ[i]=A[j];
    39. F_DQ (i+1, j+1);
    40. }
    41. }
    42. }
    43.  
    44. }
    45. }
    46.  
    47. int main ()
    48. {
    49. //IN;
    50. int t;
    51. cin>>t;
    52. for (int i=1; i<=t; i++)
    53. {
    54. cin>>n>>k;
    55. for (int i=1; i<=n; i++)
    56. {
    57. cin>>A[i];
    58. }
    59. //OUT;
    60. count=0;
    61. khoitao ();
    62. F_DQ (1, 1);
    63. cout<<count<<endl;
    64. }
    65. return 0;
    66. }