Cod sursa(job #2209186)

Utilizator AlexDianaAlexandrescu Diana AlexDiana Data 2 iunie 2018 10:01:47
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <fstream>

using namespace std;

ifstream in("cautbin.in");
ofstream out("cautbin.out");

int v[N],n;
int caut0(int x)
{
    int r=0,pas=1<<L;
    while(pas!=0)
    {
        if(r+pas<=n && v[r+pas]<=x)
            r+=pas;
        pas/=2;
    }
    return r;

}
int caut1(int x)
{
    int r=0,pas=1<<L;
    while(pas!=0)
    {
        if(r+pas<=n && v[r+pas]<=x)
            r+=pas;
        pas/=2;
    }
    if(r==0 || v[r]<x)
        r=-1;

    return r;
}
int caut2(int x)
{
    int r=0,pas=1<<L;
    while(pas!=0)
    {
        if(r+pas<=n && v[r+pas]<x)
            r+=pas;
        pas/=2;
    }
    r++;
}

    return r;

int v[100001],c[10001],nr[10001];
int main()
{
    int n,m;
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>v[i];
    }
    in>>m;
    for(int i=1;i<=m;i++)
    {
        in>>c[i]>>nr[i];
        if(c[i]==0)
        {
            out<<caut0(nr[i])<<endl;
        }
        else
            if(c[i]==1)
            {
                out<<caut1(nr[i])<<endl;
            }
            else
                if
                {
                    out<<caut2(nr[i])<<endl;
                }
    }

    return 0;
}