Cod sursa(job #2699661)

Utilizator aleebirtaBirta Alexandra aleebirta Data 25 ianuarie 2021 14:05:08
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.28 kb
#include <iostream>
using namespace std;
int main()
{
    int n, m, a[100], x, y, li, lf, mij;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y;
        if(x==0)
        {
            li=1, lf=n;
            mij=(li+lf)/2;
            while(li<=lf)
            {
                if(y>=a[mij])
                    li=mij+1;
                else
                    lf=mij-1;
                mij=(li+lf)/2;
            }
            if(a[lf]==y)
                cout<<lf<<endl;
            else
                cout<<-1<<endl;
        }
        if(x==1)
        {
            li=1, lf=n;
            mij=(li+lf)/2;
            while(li<=lf)
            {
                if(y>=a[mij])
                    li=mij+1;
                else
                    lf=mij-1;
                mij=(li+lf)/2;
            }
            cout<<lf<<endl;
        }
        if(x==2)
        {
            li=1,lf=n;
            mij=(li+lf)/2;
            while(li<=lf)
            {
                if(y<=a[mij])
                    lf=mij-1;
                else
                    li=mij+1;
                mij=(li+lf)/2;
            }
            cout<<li<<endl;
        }
    }
    return 0;
}