Cod sursa(job #1755072)

Utilizator darisavuSavu Daria darisavu Data 9 septembrie 2016 12:59:30
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
    int n,p,k,x,nr=0,ic,ok=0,a[100005],i,l,mx=0,m,v;
    f>>n;
    for(i=1;i<=n;i++) f>>a[i];
    x=n;
    while (x!=0)
    {
        x >>= 1;
        nr++;
    }
    p=(1<<nr);
    ic=0;
    p=p/2;
    v=p;
    f>>m;
    while(m)
   {
       f>>l>>k;
       if(l==0)
       {
        while(ok==0&&p)
    {
        if(a[p+ic]==k) {ok=1;if(p+ic>mx)mx=p+ic;}
        else if(a[p+ic]<k) {ic=ic+p;}
        p=p>>1;
    }
    if(ok==1) g<<mx;
    else g<<-1;
       }
       g<<endl;
       ic=0;
       p=v;
    m--;
   }
    return 0;
}