Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- long int arr[100000];
- bool binSearch(long int desired, long int start, long int end) {
- long int mid = (start + end) / 2;
- if(desired==arr[mid] || desired==arr[start] || desired==arr[end]) {
- //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]);
- return 1;
- }
- else if(start==end || start==mid || mid==end) {
- //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]);
- return 0;
- }
- else if(desired>=arr[mid]) {
- //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]);
- return binSearch(desired, mid, end);
- }
- else if(desired<=arr[mid]) {
- //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]);
- return binSearch(desired, start, mid);
- }
- return 0;
- }
- int main() {
- freopen("bins.in", "r", stdin);
- freopen("bins.out", "w", stdout);
- long int n,k;
- cin >> n >> k;
- for(long int i=0;i<n;i++) {
- cin >> arr[i];
- }
- for(int i=0;i<k;i++) {
- long int temp;
- cin >> temp;
- if(binSearch(temp, 0, n-1)) { cout << "YES" << endl; }
- else { cout << "NO" << endl; }
- }
- }
Add Comment
Please, Sign In to add comment