Cod sursa(job #3361397)

Utilizator Daria_0827Daria Mihaescu Daria_0827 Data 23 iulie 2026 19:01:16
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.67 kb
#include <iostream>
#include<fstream>
using namespace std;
int v[100001];

ifstream fin("cautbin.in");
ofstream fout("cautbin.out");


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

    fin>>t;
    for(int i=1; i<=t; i++)
    {
        int q, x;
        fin>>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)
                fout<<poz-1<<'\n';
            else
                fout<<-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;

                }
            }
            fout<<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;
                }
            }
            fout<<poz+1<<'\n';
        }

    }





}