Cod sursa(job #1397153)

Utilizator mihaigeorgempMihai Mihai mihaigeorgemp Data 23 martie 2015 12:08:59
Problema Cautare binara Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main()
{
    int v[101],x,i,j,pas,n,b,m;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
    in>>m;
    for(i=1;i<=m;i++)
    {
        in>>b>>x;
        j=0;
        pas= 1 << 16;
        if(b<2)
        {
            while(pas>0)
            {
                if(j+pas<=n && v[j+pas]<=x)
                    j+=pas;
                pas /= 2;
            }
            if(b==0 && v[j]!=x)
                out<<"-1\n";
            else
                out<<j<<"\n";
        }
        else
        {
            while(pas>0)
            {
                if(j+pas<=n && v[j+pas]<x)
                    j+=pas;
                pas/=2;
            }
            out<<j+1<<"\n";
        }
    }
}