Advertisement
uzimane_

Бинарный поиск (классика)

Jul 10th, 2020
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. freopen("input.txt", "r", stdin);
  9. freopen("output.txt", "w", stdout);
  10.  
  11. int n, k, c, l, r, m;
  12. cin >> n;
  13. int* mas = new int[n];
  14. for (int i = 0; i < n; i++)
  15. {
  16. cin >> mas[i];
  17. }
  18. cin >> k;
  19.  
  20. for (int s = 0; s < k; s++)
  21. {
  22. l = 0;
  23. r = n - 1;
  24. cin >> c;
  25.  
  26.  
  27. while (l - r < 0)
  28. {
  29. m = (l + r + 1) / 2;
  30. if (mas[m] <= c)
  31. {
  32. l = m;
  33. }
  34. else
  35. {
  36. r = m - 1;
  37. }
  38. }
  39. if (mas[l] == c)
  40. {
  41. cout << l + 1 << " ";
  42. }
  43. else
  44. {
  45. cout << -1 << " ";
  46. }
  47. }
  48.  
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement