Cod sursa(job #2704886)

Utilizator Glue02Tudorescu Ioan Daniel Glue02 Data 11 februarie 2021 15:54:18
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,v[100001],st,dr,j,mij,i,m,a,b;
bool ok;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    fin>>m;
    for(i=1;i<=m;i++)
    {

        fin>>a>>b;
        ok=0;
        st=1;
        dr=n;
        if(a==0)
        {
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(b>=v[mij]) st=mij+1;
                else dr=mij-1;
            }
            if(v[st-1]==b) fout<<st-1<<'\n';
            else fout<<"-1"<<'\n';
        }
        else if(a==1)
        {
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(b>=v[mij]) st=mij+1;
                else dr=mij-1;
            }
            fout<<st-1<<'\n';
        }
        else if(a==2)
        {
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(b<=v[mij]) dr=mij-1;
                else st=mij+1;
            }
            fout<<dr+1<<'\n';
        }
    }
}