Cod sursa(job #2788634)

Utilizator bibistrocelCristea Beatrice-Corina bibistrocel Data 26 octombrie 2021 09:53:42
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("cautbin.in");
int a[100002], b[100002][3];

int main()
{
    int n, li, lf, m, x, M;
    f>>n;
    for(int i=1; i<=n; i++)
    {
        f>>a[i];
       // cout<<a[i]<<" ";
    }
    f>>M;
    for(int i=0; i<M; i++)
        f>>b[i][0]>>b[i][1];
    for(int i=0; i<M; i++)
    {
        if(b[i][0]==0)
    {
    x=b[i][1];
    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(lf<=n && a[lf]==x) cout<<lf<<"\n";
    else cout<<-1<<"\n";
    }
        if(b[i][0]==1)
            for(int i=n-1; i>=0; i--)
                if(a[i]<=x)
                {
                    cout<<i<<"\n";
                    break;
                }
        if(b[i][0]==2)
            for(int i=0; i<n; i++)
                if(a[i]>=x)
                {
                    cout<<i;
                    break;
                }
    }
}