Advertisement
flownkk

Бинарный поиск1

Dec 15th, 2018
82
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.  
  3. int arrN[1000001];
  4. int arrK[1000001];
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.  
  10. freopen ("bins.in", "r", stdin);
  11. freopen ("bins.out", "w", stdout);
  12.  
  13. int N, K, Amin, Amax, A;
  14. bool yn;
  15. yn = false;
  16. cin >> N >> K;
  17.  
  18. for (int i = 1; i <= N; i++){
  19. cin >> arrN[i];
  20.  
  21. }
  22.  
  23. for(int i = 1; i <= K; i++){
  24. cin >> arrK[i];
  25. }
  26.  
  27.  
  28. for(int i = 1; i <= K; i++){
  29.  
  30. A = N/2 + 1;
  31.  
  32. if(arrK[i] <= arrN[N-1] && arrK[i] >= arrN[1]){
  33. for ( ; true; ){
  34. if(arrK[i] > arrN[A]){
  35. Amin = A;
  36. Amax = N;
  37. } else {
  38. Amin = 1;
  39. Amax = A;
  40. }
  41.  
  42. if(Amax - Amin == 1){
  43. if(arrK[i] == arrN[Amax] || arrK[i] == arrN[Amin]){
  44. cout << "YES" << endl;
  45. break;
  46. } else {
  47. cout << "NO" << endl;
  48. break;
  49. }
  50. }
  51.  
  52.  
  53. A = (Amax-Amin) / 2;
  54. }
  55. } else {
  56. cout << "NO" << endl;
  57. }
  58. }
  59.  
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement