Cod sursa(job #2068257)

Utilizator DovlecelBostan Andrei Dovlecel Data 17 noiembrie 2017 15:02:25
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#include <iostream>
using namespace std;
int v[100001];
const int L=16;
int main()
{
    int n,m,r,pas,i,cf,x;
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    for(i=1;i<=m;i++)
    {
        f>>cf>>x;
        r=0;
        pas=1<<L;
        if(cf==0)
        {
            while(pas!=0)
            {
                if(r+pas<=n && v[r+pas]<=x)
                    r=r+pas;
                pas=pas/2;
            }
            if(v[r]!=x)
                r=-1;
            g<<r<<'\n';
        }
        if(cf==1)
        {
            while(pas!=0)
            {
                if(r+pas<=n && v[r+pas]<=x)
                    r=r+pas;
                pas=pas/2;
            }
            g<<r<<'\n';
        }
        if(cf==2)
        {
            while(pas!=0)
            {
                if(r+pas<=n && v[r+pas]<x)
                    r=r+pas;
                pas=pas/2;
            }
            r++;
            g<<r<<'\n';
        }
    }
    return 0;
}