Cod sursa(job #2909420)

Utilizator AxicaVirtosu Alexandra Mihaela Axica Data 13 iunie 2022 15:27:09
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>

using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.in");


int n, v[100003], m;
int c, x;
int st, dr, mid;
int main()
{
    fin>>n;
    for(int i=1; i<=n; i++)
        fin>>v[i];
    fin>>m;
    for(int i=1; i<=m; i++)
    {
        fin>>c>>x;
        if(c==0 || c==1)
        {
            st=1, dr=n;
            while(st<=dr)
            {
                mid=(st+dr)/2;
                if(v[mid]<=x)
                    st=mid+1;
                else
                    dr=mid-1;
            }
           if(c==0)
                if(dr!=0 && v[dr]==x)
                    fout<<dr<<"\n";
                else
                    fout<<-1<<"\n";
           else
                fout<<dr<<"\n";
        }
        else
        {
            st=1, dr=n;
            while(st<=dr)
            {
                mid=(st+dr)/2;
                if(v[mid]<x)
                    st=mid+1;
                else
                    dr=mid-1;
            }
            fout<<st<<"\n";
        }


    }


    return 0;

}