Maruf_Hasan

uva 10611

Sep 28th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<bits/stdc++.h>
  4. using namespace std;
  5.  
  6. long long binaryshort(long long a[],long long n,long long h)
  7. {
  8. long long high,low,mid;
  9. high=n;
  10. low=1;
  11. while(high>=low)
  12. {
  13. mid=(high+low)/2;
  14. if(a[mid]<h && h<=a[mid+1])
  15. {
  16. return a[mid];
  17. }
  18. else if(a[mid]<h)
  19. {
  20. low=mid+1;
  21. }
  22. else
  23. {
  24. high=mid-1;
  25. }
  26. }
  27.  
  28. }
  29. long long binarytall(long long a[],long long n,long long h)
  30. {
  31. long long high,low,mid;
  32. low=1;
  33. high=n;
  34. while(high>=low)
  35. {
  36. mid=high+low/2;
  37. if(a[mid]>h && a[mid-1]<=h)
  38. {
  39. return a[mid];
  40. }
  41. else if(a[mid]>h)
  42. {
  43. high=mid-1;
  44. }
  45. else
  46. {
  47. low=mid+1;
  48. }
  49. }
  50. }
  51.  
  52. int main()
  53. {
  54. long long n,i;
  55. cin>>n;
  56. long long a[n+5];
  57. a[0]=0;
  58. for(i=1;i<=n;i++)
  59. cin>>a[i];
  60. long long q;
  61. cin>>q;
  62. for(i=0;i<q;i++)
  63. {
  64. long long h,t,s;
  65. cin>>h;
  66. if(h>=a[n])
  67. t=0;
  68. else{
  69. t=binarytall(a,n,h);
  70. }
  71. s=binaryshort(a,n,h);
  72. if(t==0)
  73. {
  74. printf("%lld X\n",s);
  75. }
  76. else
  77. printf("%lld %lld\n",s,t);
  78. }
  79.  
  80.  
  81. return 0;
  82. }
Add Comment
Please, Sign In to add comment