Guest User

Untitled

a guest
May 26th, 2018
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. # include <iostream>
  2. # include <cmath>
  3. using namespace std;
  4. long long a[100001+10],b[100001+10];
  5. int main () {
  6.         int c,d;
  7.     cin>>c>>d;
  8.     for (int i=0;i<c;i++) //vvod a
  9.         cin>>a[i];
  10.  
  11.     for (int i=0;i<d;i++) //vvod b
  12.         cin>>b[i];
  13.  
  14.     for (int i=0;i<d;i++) //proverka massiva b
  15.     {
  16.         int lf=0,rg=c-1,mid,pos=99999,x=100000,brain=0;
  17.         while (rg>=lf) //proverka b[i]
  18.         {
  19.             mid=(rg+lf)/2;
  20.             if (a[mid]==b[i])
  21.             {
  22.                 pos=mid;
  23.                 break;
  24.             }
  25.             if (a[mid]>b[i]) {rg=mid-1;brain=0;}
  26.                 else {lf=mid+1; brain=1;}
  27.             if (abs(a[mid]-b[i])<x && brain==0)
  28.             {
  29.                 x=abs(a[mid]-b[i]);
  30.                 pos=mid;
  31.             }
  32.             if (abs(a[mid]-b[i])<=x && brain==1)
  33.             {
  34.                 x=abs(a[mid]-b[i]);
  35.                 pos=mid;
  36.             }
  37.         }
  38.         cout<<a[pos]<<endl;
  39.     }
  40.     return 0;
  41. }
Add Comment
Please, Sign In to add comment