Advertisement
saira12tabassum19

Untitled

Dec 28th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int upper(int x,int n,int a[])
  5. {
  6. int left=0,right=n-1,mid,ans;
  7. while(left<=right)
  8. {
  9. mid=(left+right)/2;
  10. if(a[mid]>x)
  11. {
  12. ans=mid;
  13. right=mid-1;
  14. }
  15. else{
  16. left=mid+1;
  17. }
  18. }return ans;
  19. }
  20. int lower(int x,int n,int a[])
  21. { int left=0,right=n-1,mid,ans;
  22. while(left<=right)
  23. {
  24. mid=(right+left)/2;
  25. if(a[mid]<x)
  26. {
  27. ans=mid;
  28. left=mid+1;
  29. }
  30. else{
  31. right=mid-1;
  32. }
  33. }
  34. return ans;
  35. }
  36.  
  37.  
  38. int main()
  39. {
  40.  
  41. int n,q,qu;
  42. cin>>n;
  43. int ar[n];
  44. for(int i=0;i<n;i++)
  45. {
  46. cin>>ar[i];
  47. }
  48. cin>>q;
  49. for(int j=0;j<q;j++)
  50. {
  51. cin>>qu;
  52. if(n==1){if(qu==ar[0])cout<<"X "<<"X"<<endl;
  53. else if(qu<ar[0])cout<<"X "<<ar[0]<<endl;
  54. else if(qu>ar[n-1])cout<<ar[0]<<" X"<<endl;
  55. }
  56. else{
  57.  
  58. if(qu<=ar[0])cout<<"X ";
  59. else
  60. {int left;
  61. left=lower(qu,n,ar);
  62. cout<<ar[left]<<" ";}
  63. if(qu>=ar[n-1])cout<<"X"<<endl;
  64. else
  65. {int right;
  66. right=upper(qu,n,ar);
  67. cout<<ar[right]<<endl;}
  68. }
  69.  
  70.  
  71.  
  72.  
  73. }
  74.  
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement