fork download
  1. //
  2. // main.c
  3. // BESTBATS
  4. //
  5. // Created by Dhruv Mullick on 01/02/14.
  6. // Copyright (c) 2014 Dhruv Mullick. All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10.  
  11. void mrg(int*A,int*B,int low, int mid, int high)
  12. {
  13. int i, i0, i1;
  14. i0 = low;
  15. i1 = mid;
  16.  
  17. for(i=low;i<high;i++)
  18. {
  19. if(i0<mid && (i1>=high || A[i0]<A[i1]))
  20. {
  21. B[i] = A[i0];
  22. i0++;
  23. }
  24. else
  25. {
  26. B[i] = A[i1];
  27. i1++;
  28. }
  29. }
  30.  
  31. }
  32.  
  33. void mgsort(int*A, int*B, int low, int high)
  34. {
  35. int i;
  36. int mid = (low+high)/2;
  37.  
  38. if((high-low)==1)
  39. return;
  40. mgsort(A,B,low,mid);
  41. mgsort(A,B,mid,high);
  42. mrg(A,B,low,mid,high);
  43.  
  44. for(i=low;i<high;i++)
  45. A[i] = B[i];
  46. }
  47.  
  48.  
  49. void mrgesort(int*A, int n)
  50. {
  51. int B[11];
  52.  
  53. mgsort(A, B,0,n);
  54. }
  55.  
  56. int fact(int x)
  57. {
  58. int f=1;
  59. int i;
  60.  
  61. for(i=x;i>=1;i--)
  62. f = f*i;
  63.  
  64. return f;
  65. }
  66.  
  67. int main(void)
  68. {
  69. int t,A[11],i,k,f;
  70. scanf("%d", &t);
  71.  
  72. while(t--)
  73. {
  74. f=0;
  75.  
  76. for(i=0;i<11;i++)
  77. scanf("%d", &A[i]);
  78.  
  79. scanf("%d",&k);
  80.  
  81. mrgesort(A,11);
  82.  
  83. int c=1,a=1;
  84.  
  85. if(A[11-k]==A[10-k])
  86. f=1;
  87.  
  88. if(f==1)
  89. {
  90. for(i=11-k;i<10;i++)
  91. {
  92. if(A[i]==A[i+1])
  93. {
  94. c++;
  95. a++;
  96. }
  97. else
  98. break;
  99. }
  100.  
  101. c++;
  102.  
  103. for(i=10-k;i>0;i--)
  104. {
  105. if(A[i]==A[i-1])
  106. c++;
  107. else
  108. break;
  109. }
  110.  
  111. t = (int)(fact(c)/(float)(fact(c-a) * fact(a)));
  112.  
  113. printf("%d\n",t);
  114. }
  115.  
  116. else printf("1\n");
  117. }
  118.  
  119. return 0;
  120. }
  121.  
  122.  
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
Standard output is empty