FEgor04

Untitled

Sep 6th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. long int arr[100000];
  4. bool binSearch(long int desired, long int start, long int end) {
  5.     long int mid = (start + end) / 2;
  6.     if(desired==arr[mid] || desired==arr[start] || desired==arr[end]) {
  7.         //fprintf(stderr, "Desired: %ld\tarr[%ld]: %ld\tarr[%ld]: %ld\tMid: %ld\tArr[mid]=%ld\n", desired, start, arr[start], end, arr[end], mid, arr[mid]);
  8.         return 1;
  9.     }
  10.     else if(start==end || start==mid || mid==end) {
  11.         //fprintf(stderr, "Desired: %ld\tarr[%ld]: %ld\tarr[%ld]: %ld\tMid: %ld\tArr[mid]=%ld\n", desired, start, arr[start], end, arr[end], mid, arr[mid]);
  12.         return 0;
  13.     }
  14.     else if(desired>=arr[mid]) {
  15.         //fprintf(stderr, "Desired: %ld\tarr[%ld]: %ld\tarr[%ld]: %ld\tMid: %ld\tArr[mid]=%ld\n", desired, start, arr[start], end, arr[end], mid, arr[mid]);
  16.         return binSearch(desired, mid, end);
  17.     }
  18.     else if(desired<=arr[mid]) {
  19.         //fprintf(stderr, "Desired: %ld\tarr[%ld]: %ld\tarr[%ld]: %ld\tMid: %ld\tArr[mid]=%ld\n", desired, start, arr[start], end, arr[end], mid, arr[mid]);
  20.         return binSearch(desired, start, mid);
  21.     }
  22.     return 0;
  23. }
  24. int main() {
  25.     freopen("bins.in", "r", stdin);
  26.     freopen("bins.out", "w", stdout);
  27.     long int n,k;
  28.     cin >> n >> k;
  29.    
  30.     for(long int i=0;i<n;i++) {
  31.         cin >> arr[i];
  32.     }
  33.     for(int i=0;i<k;i++) {
  34.         long int temp;
  35.         cin >> temp;
  36.         if(binSearch(temp, 0, n-1)) { cout << "YES" << endl; }
  37.         else { cout << "NO" << endl; }
  38.     }
  39. }
Add Comment
Please, Sign In to add comment