Cod sursa(job #2073103)

Utilizator anamariazidaruZidaru Ana-Maria anamariazidaru Data 22 noiembrie 2017 18:30:03
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int N=100001;
int v[N];

int main()
{
    int i, n, m, r, pas, x, in;
    f>>n;
    for (i=1; i<=n; i++) f>>v[i];
    f>>m;
    for (i=1; i<=m; i++)
    {
        f>>in>>x;
        pas=1<<16;
        r=0;
        if (in < 2)
        {
            while (pas!=0)
            {
                if (r+pas<=n && v[r+pas]<=x)
                {
                    r+=pas;
                }
                pas /= 2;
            }
            if (in==0 && v[r] != x)
            {
                r = -1;
            }
        }
        else
        {
            while (pas!=0)
            {
                if (r+pas<=n && v[r+pas]<x)
                {
                    r+=pas;
                }
                pas /= 2;
            }
            r++;
        }
        g<<r<<'\n';
    }
    f.close();
    g.close();
    return 0;
}