Cod sursa(job #2786926)

Utilizator doruliqueDoru MODRISAN dorulique Data 21 octombrie 2021 23:06:30
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,a[100001],ni;

int main()
{
    fin>>n;
    int q,x,i,li,lf,m;
    for(i=1;i<=n;i++)
        fin>>a[i];
    fin>>ni;
    for(i=1;i<=ni;i++)
    {
        fin>>q>>x;
        if(q<2)
        {
            li=1;lf=n;m=(li+lf)/2;
            while(li<=lf)
            {
                if(x>=a[m])li=m+1;
                else lf=m-1;
                m=(li+lf)/2;
            }
            if(q==0&&a[lf]!=x)fout<<"-1\n";
            else fout<<lf<<'\n';
        }
        else
        {
            li=1;lf=n;m=(li+lf)/2;
            while(li<=lf)
            {
                if(x<=a[m])lf=m-1;
                else li=m+1;
                m=(li+lf)/2;
            }
            fout<<li<<'\n';
        }
    }
    return 0;
}