Cod sursa(job #1448630)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 7 iunie 2015 18:00:18
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,i,tip,x,lung,put,m,v[100002];
int main()
{
    f>>n;
    for(i=1;i<=n;i++) f>>v[i];
    for(put=1;put<=n;put<<=1);
    put>>=1;
    f>>m;
    while(m--)
    {
        f>>tip>>x;
        if(tip<2)
        {
            for(i=0,lung=put;lung;lung>>=1)
                if(i+lung<=n&&v[i+lung]<=x) i+=lung;
            if(v[i]!=x) g<<-1<<'\n';
            else g<<i<<'\n';
        }
        else
        {
            for(i=n,lung=put;lung;lung>>=1)
                if(i-lung>0&&v[i-lung]>=x) i-=lung;
            g<<i<<'\n';
        }
    }
    g.close();
    return 0;
}