Advertisement
mhdew

Contest 5_E

Feb 19th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long i, n;
  6. long long j, q;
  7. long long a[100000];
  8.  
  9. void b_search(long long key)
  10. {
  11. long long l=0;
  12. long long h=n-1;
  13. long long m;
  14. long long ans_l, ans_h;
  15.  
  16. while(l<=h){
  17. m=(l+h)/2;
  18.  
  19. if(a[m]==key){
  20. ans_l=a[m-1];
  21. ans_h=a[m+1];
  22. printf("%lld %lld\n", ans_l,ans_h);
  23. break;
  24. }
  25.  
  26. else if(a[m]<key){
  27. if(a[m+1]>key){
  28. ans_l=a[m];
  29. ans_h=a[m+1];
  30. printf("%lld %lld\n", ans_l,ans_h);
  31. break;
  32. }
  33. else{
  34. l=m+1;
  35. }
  36. }
  37. else if(a[m]>key){
  38. if(a[m-1]<key){
  39. ans_l=a[m-1];
  40. ans_h=a[m];
  41. printf("%lld %lld\n", ans_l,ans_h);
  42. break;
  43. }
  44. else{
  45. h=m-1;
  46. }
  47. }
  48. }
  49. }
  50.  
  51. int main()
  52. {
  53. long long key;
  54.  
  55. scanf("%lld", &n);
  56. for(i=0;i<n;i++)
  57. scanf("%lld", &a[i]);
  58.  
  59. scanf("%lld", &q);
  60. for(j=0;j<q;j++){
  61. scanf("%lld", &key);
  62.  
  63. if(key>=a[n-1]){
  64. printf("%lld %c\n", a[n-1],'X');
  65. }
  66. else if(key<=a[0]){
  67. printf("%c %lld\n", 'X',a[0]);
  68. }
  69. else{
  70. b_search(key);
  71. }
  72. }
  73. return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement