Cod sursa(job #2045931)

Utilizator Serban2331Foica Serban Serban2331 Data 23 octombrie 2017 09:22:16
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <algorithm>
using namespace std;

int a[200006],b[200006],i,m,n;
void citire()
{
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(i=1;i<=m;i++)
    {
        cin>>b[i];
    }
}
int cb(int l,int r,int x)
{
    int mij;
        while(l<=r)
        {mij=l+(r-l)/2;
            if(a[mij]<=x)
            {
                if(a[mij+1]>x||mij==r)
                {
                    return mij;
                }
                else
                    l=mij+1;
            }
            else
                r=mij-1;
        }
        return mij;
}

int main()
{
    citire();
    sort(a+1,a+n+1);
    for(i=1;i<=m;i++)
    {
        if(b[i]<a[1])
            cout<<"0"<<" ";
        else
            cout<<cb(1,n,b[i])<<" ";
    }
    return 0;
}