fork download
  1. //----->|try=0; while(!success) try++;|<------
  2. //----->|Belief Yourself,Respect Yourself|<----
  3. //----->|Be Proud Of Yourself,You're Doing Your best|<-----
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6. #define uniq(x) x.erase(unique(x.begin(),x.end()), x.end()) //Unique value find from vector
  7. #define max3(a,b,c) max(max(a,b),c)
  8. #define min3(a,b,c) min(min(a,b),c)
  9. #define PI acos(-1.0)
  10. #define LL long long
  11. #define INF_MAX 2147483647
  12. #define INF_MIN -2147483647
  13. #define MX 1000005
  14. #define MOD 1000000007
  15. template<typename T> T POW(T b,T p) //Pow calculation
  16. {
  17. T r=1;
  18. while(p)
  19. {
  20. if(p&1)r=(r*b);
  21. b=(b*b);
  22. p>>=1;
  23. }
  24. return r;
  25. }
  26. int arr[100001],first,last,n,mid;
  27. int Binary_Search(int taka)
  28. {
  29. //for(int i=0;i<=n;i++) cout<<"array = "<<arr[i]<<endl;
  30. first=0;
  31. last=n;
  32. while(first<=last)
  33. {
  34. mid=(first+last)/2;
  35. if(taka>=arr[mid] && taka<arr[mid+1])
  36. {
  37. return mid;
  38. }
  39. else if(taka<arr[mid])
  40. {
  41. last=mid-1;
  42. }
  43. else
  44. {
  45. first=mid+1;
  46. }
  47. }
  48. }
  49. int main()
  50. {
  51. //freopen("a.in", "r", stdin);
  52. //freopen("a.out", "w", stdout);
  53. int query,taka;
  54. while(cin>>n)
  55. {
  56. arr[0]=0;
  57. arr[n+1]=INF_MAX;
  58. for(int i=1; i<=n; i++)
  59. {
  60. cin>>arr[i];
  61. }
  62. sort(arr,arr+n+1);
  63. cin>>query;
  64. for(int i=1; i<=query; i++)
  65. {
  66. cin>>taka;
  67. cout<<Binary_Search(taka)<<endl;
  68. }
  69. }
  70. }
  71.  
Success #stdin #stdout 0s 3852KB
stdin
5
3 10 8 6 11
4
1
10
3
11
stdout
0
4
1
5