Advertisement
SergeyPGUTI

10.2.4

Apr 4th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. int BinarySearch(int A[],int right ,int key)
  5. {
  6. int left=1,mid;
  7. while (left<=right)
  8. {
  9. mid=left+(right-left)/2;
  10. if (key<A[mid]) right=mid-1;
  11. else if (key>A[mid]) left=mid+1;
  12. else return mid;
  13. }
  14. return -1;
  15. }
  16.  
  17. using namespace std;
  18.  
  19. int main()
  20. {
  21.     int N,M,ind;
  22.     cin>>N>>M;
  23.     int *a=new int[N+1];
  24.     int *b=new int[M+1];
  25.     for (int i=1;i<=N;i++)
  26.     {
  27.         cin>>a[i];
  28.     }
  29.     for (int i=1;i<=M;i++)
  30.     {
  31.         cin>>b[i];
  32.     }
  33.     for (int i=1;i<=M;i++)
  34.     {
  35.         ind=BinarySearch(a,N,b[i]);
  36.         if (ind==-1)
  37.             cout<<0<<endl;
  38.         else
  39.         {
  40.             while(ind>1 && a[ind]==a[ind-1])
  41.                 ind--;
  42.             cout<<ind<<" ";
  43.             while(ind<N && a[ind]==a[ind+1])
  44.                 ind++;
  45.             cout<<ind<<endl;
  46.         }
  47.     }
  48.  
  49.     return 0;
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement