Cod sursa(job #1395722)

Utilizator BratuAlexandruBratu Alexandru Razvan BratuAlexandru Data 21 martie 2015 13:00:33
Problema Cautare binara Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>

using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100];
int main()
{
    int N,M,i,j,a,x,pas;
    in>>N;
    for(i=1; i<=N; i++)
        in>>v[i];
    in>>M;
    for(i=1; i<=M; i++)
    {
        in>>a>>x;
        if(a==0)
        {
            j=0;
            pas=1<<16;
            while(pas!=0)
            {
                if(j+pas<=N&&v[j+pas]<=x)
                    j+=pas;
                pas/=2;
            }
            if(v[j]==x) out<<j;
            else out<<-1;
            out << '\n';
        }
        if(a==1)
        {
            j=0;
            pas=1<<16;
            while(pas!=0)
            {
                if(j+pas<=N&&v[j+pas]<=x)
                    j+=pas;
                pas/=2;
            }
            out<<j;
            out << '\n';
        }
        if(a==2)
        {
            j=0;
            pas=1<<16;
            while(pas!=0)
            {
                if(j+pas<=N&&v[j+pas]<x)
                    j+=pas;
                pas/=2;
            }
            j++;
            out<<j;
            out << '\n';
        }
    }
    return 0;
}