Cod sursa(job #2058256)

Utilizator silviuilasSilviu Ilas silviuilas Data 5 noiembrie 2017 13:24:50
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
const int N = 100010;
int n,t,x,m,i,j,a[N],lo,hi,mi;
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>a[i];
    f>>m;
    for(; m; m--)
    {
        f>>t>>x;
        if(t==2)
        {
            for(lo=0,hi=n; hi-lo>1;)
            {
                mi=(lo+hi)/2;
                if(a[mi]<x)
                    lo=mi;
                else
                    hi=mi;
            }
            g<<hi<<'\n';
            continue;
        }
        for(lo=1,hi=n+1; hi-lo>1;)
        {
            mi=(lo+hi)/2;
            if(a[mi]<=x)
                lo=mi;
            else
                hi=mi;
        }
        if(t==0&&a[lo]!=x)
            lo=-1;
        g<<lo<<'\n';
    }
    return 0;
}