Cod sursa(job #1678098)

Utilizator ioanadragomirIoana Dragomir ioanadragomir Data 6 aprilie 2016 23:49:03
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100001];
int main()
{
    int n,m,val,i,pas,j,L=14,x;
    f>>n;
    for(j=1; j<=n; j++)
        f>>v[j];
    f>>m;
    for(j=1; j<=m; j++)
    {
        f>>x>>val;
        if(x==0)
        {
            pas=(1<<L);
            i=0;
            while(pas!=0)
            {
                if(i+pas<=n&&v[i+pas]<=val)
                    i+=pas;
                pas/=2;
            }
            if(i==0||v[i]<val)
                g<<-1<<'\n';
            else
                g<<i<<'\n';
        }
        if(x==1)
        {
            pas=(1<<L);
            i=0;
            while(pas!=0)
            {
                if(i+pas<=n&&v[i+pas]<=val)
                    i+=pas;
                pas/=2;
            }
            g<<i<<'\n';
        }
        if(x==2)
        {
            pas=(1<<L);
            i=0;
            while(pas!=0)
            {
                if(i+pas<=n&&v[i+pas]<val)
                    i+=pas;
                pas/=2;
            }
            g<<i+1<<'\n';
        }
    }
    return 0;
}