fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int comp(const void *a, const void *b){
  4. return (*(int *)a - *(int *)b);
  5. }
  6. void swap(double *a, double *b){
  7. double t=*a;
  8. *a=*b;
  9. *b=t;
  10. }
  11. double quicksort(double data[], int left, int right){
  12. int i = left;
  13. int j = right;
  14. int temp;
  15. double pivot = data[(left+right)/2];
  16. double average = 0;
  17. while(i<=j){
  18. while(data[i] < pivot) i++;
  19. while(data[j]>pivot)j--;
  20. if(i<=j){
  21. swap(&data[i], &data[j]);
  22. i++;
  23. j--;
  24. }
  25. }
  26. if(left < j){
  27. quicksort(data, left, i);}
  28. if(i<right){
  29. quicksort(data, j+1, right);}
  30. }
  31.  
  32. int binarysearch(double da[], int N, double val){
  33. int low = 0, mid, high = N -1;
  34. double temp;
  35. while(low<=high){
  36. mid = (low+high)/2;
  37. if(da[mid]==val){ temp = da[mid];
  38. da[mid]=0;
  39. if(binarysearch(da, high, val)>0){
  40. return (mid+1);
  41. }
  42. else{ return mid;}}
  43. else if(da[mid]<val) low = mid +1;
  44. else high = mid -1;
  45. }
  46. return -1;
  47. }
  48.  
  49. int main(){
  50. int i, n;
  51. int k;
  52. double arr[1000];
  53. scanf("%d", &n);
  54. scanf("%lf", &arr[0]);
  55. for(i=1; i<n; i++) scanf("%lf", &arr[i]);
  56. quicksort(arr, 0, n-1);
  57. k = binarysearch(arr, n, arr[0]);
  58. printf("%d",(n-k));
  59. system("pause");
  60. }
Success #stdin #stdout #stderr 0s 10320KB
stdin
5
71
15
97
71
68
stdout
5
stderr
sh: 1: pause: not found