Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int BinSearchRight (int arr[], int right, int key) {
  7. int left = -1;
  8. int mid = 0;
  9. while (right - left > 1) {
  10. mid = (left + right) / 2;
  11. if (key < arr[mid]) {
  12. right = mid;
  13. } else {
  14. left = mid;
  15. }
  16. }
  17. if (arr[left] == key & left!=0) {
  18. return left + 1;
  19. }
  20. else {
  21. return -1;
  22. }
  23. }
  24.  
  25. int BinSearchLeft (int arr[], int right, int key)
  26. {
  27. int left = -1;
  28. int mid = 0;
  29. while (right - left > 1) {
  30. mid = (left + right) / 2;
  31. if (key > arr[mid]) {
  32. left = mid;
  33. } else {
  34. right = mid;
  35. }
  36. }
  37. if (arr[right] == key & right!=0) {
  38. return right + 1;
  39. }
  40. else {
  41. return -1;
  42. }
  43. }
  44.  
  45.  
  46. int main() {
  47. ifstream fin ("binsearch.in");
  48. ofstream fout ("binsearch.out");
  49. int n;
  50. fin >> n;
  51. int a[n];
  52. for (int i = 0; i < n; i++)
  53. fin >> a[i];
  54.  
  55. int m;
  56. fin >> m;
  57.  
  58. for (int i = 0; i < m; i++) {
  59. int tmp;
  60. fin >> tmp;
  61. fout << BinSearchLeft(a, n, tmp) << BinSearchRight(a, n, tmp) << endl;
  62. }
  63.  
  64. fin.close();
  65. fout.close();
  66. return 0;
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement