Cod sursa(job #2338696)

Utilizator MitracheMitrache Cristiana Alexandra Mitrache Data 7 februarie 2019 18:39:09
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int v[100001],pos,n;
int cbin(int val)
{
    pos=0;
    for(int msh=1<<20;msh>0;msh/=2)
        pos+=msh;
    if(v[pos]==val)
        return pos;

}
int main()
{
    int i,x,m,c,p;
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>v[i];
    }
    in>>m;
    for(i=1;i<=n;i++)
{
    in>>c>>x;
    if(c==0)
    {
        p=cbin(x);
        if(v[p]==x)
            out<<p<<'\n';
        else
            out<<"-1"<<'\n';
    }
    if(c==1)
    {
        p=cbin(x);
        out<<p<<'\n';

    }
    if(c==2)
    {
        p=cbin(x-1);
        out<<p+1<<'\n';
    }
}
    return 0;
}