Advertisement
orthocresol

Untitled

Feb 21st, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #include<iostream>
  2. void solution(int &c, int &d, int luchu, int a[], int N)
  3. {
  4. int l = 0, r = N - 1, mid, i;
  5. while (r >= l){
  6. mid = r - (r - l)/2;
  7. if ( luchu + 0.1 > a[mid] ){
  8. l = mid + 1;
  9. }
  10. else if ( luchu + 0.1 < a[mid]){
  11. r = mid - 1;
  12. }
  13. }
  14. int index = l;
  15. for ( i = index - 1, c = -1 ; i >= 0 ; i-- ){
  16. if (a[i] < luchu){
  17. c = a[i];
  18. break;
  19. }
  20. else c = -1;
  21. }
  22. for ( i = index, d = -1 ; i < N ; i++ ){
  23. if (a[i] > luchu){
  24. d = a[i];
  25. break;
  26. }
  27. else d = -1;
  28. }
  29. }
  30.  
  31.  
  32. int main (){
  33. int N, Q, luchu, a[50003];
  34. int x, y;
  35. std::cin >> N;
  36. for (int i = 0 ; i < N ; std::cin >> a[i], i++ );
  37. std::cin >> Q;
  38. while(Q--){
  39. std::cin >> luchu;
  40. solution(x, y, luchu, a, N);
  41. if(x == -1 && y != -1) printf("X %d\n",y );
  42. else if(x != -1 && y == -1) printf("%d X\n",x );
  43. else if(x != -1 && y != -1) printf("%d %d\n",x, y );
  44. else printf("X X\n");
  45. }
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement