Cod sursa(job #1389742)

Utilizator raduzxstefanescu radu raduzx Data 16 martie 2015 16:43:30
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>

using namespace std;
int v[100002];
int main()
{
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    int n,m,maxim,i,j;
    f>>n;
    for(i=1;i<=n;i*=2)

    maxim=i;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    int poz,a,b;
    for(i=1;i<=m;i++)
    {
        f>>a;
        f>>b;
        if(a==0)
        {
            poz=0;
            for(j=maxim/2; j; j/=2)
              if(poz+j<=n and v[j+poz]<=b)
                    poz+=j;
            poz+=1;
           // g<<poz<<" ";
            if(v[poz]==b) g<<poz<<'\n';
            else
                g<<"-1 \n";
        }
        if(a==1)
        {
            poz=0;
            for(j=maxim/2; j; j/=2)
              if(poz+j<=n and v[j+poz]<=b)
                    poz+=j;
            poz+=1;
            g<<poz<<'\n';
        }
        if(a==2)
        {
            poz=0;
            for(j=maxim/2; j; j/=2)
              if(poz+j<=n and v[j+poz]<b)
                    poz+=j;
            poz+=1;
            g<<poz<<'\n';
        }
    }
    return 0;
}