Cod sursa(job #2145900)

Utilizator andrei2408Andrei Cioc andrei2408 Data 27 februarie 2018 18:00:08
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <bits/stdc++.h>

using namespace std;

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

#define N 100010
int v[N];

int bsearch0 (int lo, int hi, int c)
{
    int m;
    while (lo<=hi)
    {
        m=(lo+hi)/2;
        if (v[m]<=c)
            lo=m+1;
        else hi=m-1;
    }
    m=(lo+hi)/2;
    if (v[m]>c)
        m--;
    if (v[m]==c)
            return m;
    return -1;
}


int bsearch1 (int lo, int hi, int c)
{
   /* int m;
    while (lo<=hi)
    {
        m=(lo+hi)/2;
        if (v[m]<c)
            hi=m-1;
            else lo=m+1;
    }
    */
    return 0;
}

int bsearch2 (int lo, int hi, int c)
{
    return 0;
}

int main()
{
    int n, m, i, a, x;
    in>>n;
    for (i=1; i<=n; i++)
        in>>v[i];
    in>>m;
    for (i=1; i<=m; i++)
    {
        in>>a>>x;
        if (a==0)
            out<<bsearch0 (1, n, x)<<'\n';
        if (a==1)
            out<<bsearch1 (1, n, x)<<'\n';
        if (a==2)
            out<<bsearch2 (1, n, x)<<'\n';
    }
    return 0;
}