Cod sursa(job #2395711)

Utilizator Dragono63Stanciu Rares Stefan Dragono63 Data 2 aprilie 2019 20:10:11
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.42 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");


int main()
{

    int n,rez,mij,st=1,dr,t,v[100005];

    fin>>n;


    for(int i=1; i<=n; i++)
    {
        fin>>v[i];
    }
    fin>>t;
    for(int i=0; i<t; i++)
    {
        int a,b;
        fin>>a>>b;
        dr=n;
        rez=-1;
        st=1;
        while(st<=dr)
        {
            mij=(st+dr)/2;
            if(a==0)
            {
                if(v[mij]<=b)
                {
                    st=mij+1;
                    if(v[mij]==b) rez=mij;
                }
                else
                {
                    dr=mij-1;
                }
            }
            else
            {
                if(a==1)
                {
                    if(v[mij]<=b)
                    {
                        st=mij+1;
                        rez=mij;
                    }
                    else dr=mij-1;
                }
                else{
                    if(a==2){
                        if(v[mij]<b){
                            st=mij+1;
                        }
                        else{
                            rez=mij;
                            dr=mij-1;
                        }
                    }
                }
            }
        }
        fout<<rez<<"\n";
    }












    return 0;
}