Cod sursa(job #3361395)

Utilizator Daria_0827Daria Mihaescu Daria_0827 Data 23 iulie 2026 18:52:19
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.59 kb
#include <iostream>

using namespace std;
int v[100];




int main()
{
    int n;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>v[i];
    }
    int t;

    cin>>t;
    for(int i=1; i<=t; i++)
    {
        int q, x;
        cin>>q>>x;
        int poz=-1;
        if(q==0)
        {
            int st = 1,dr=n;
            while(st <= dr)
            {
                int mid = (st+dr)/2;
                if(x >= v[mid])
                {
                    st = mid+1;
                    poz=st;
                }
                else dr = mid-1;
            }
            if(poz>1 && v[poz-1]==x)
                cout<<poz-1<<'\n';
            else
                cout<<-1<<'\n';
        }
        if(q==1)
        {
            int st = 1,dr=n;
            while(st <= dr)
            {
                int mid = (st+dr)/2;
                if(x >= v[mid])
                {
                    st = mid+1;
                    poz=st;
                }
                else
                {
                    dr = mid-1;

                }
            }
            cout<<poz-1<<'\n';


        }
        if(q==2)
        {
            int st = 1,dr=n;
            while(st <= dr)
            {
                int mid = (st+dr)/2;
                if(x > v[mid])
                {
                    st = mid+1;

                }
                else
                {
                    dr = mid-1;
                    poz=dr;
                }
            }
            cout<<poz+1<<'\n';
        }

    }





}