Cod sursa(job #1799619)

Utilizator mariastStoichitescu Maria mariast Data 6 noiembrie 2016 16:09:56
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>
using namespace std;
ifstream cin ("cautbin.in");
ofstream cout ("cautbin.out");
int n,a[100001],i,t,x,m,st,dr,mij;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>a[i];
    }
    cin>>m;
    for(i=1;i<=m;i++){
        cin>>t>>x;
        st=0;
        dr=n;
        if(t==0){
            while(st<=dr){
                mij=(st+dr)>>1;
                if (a[mij]<=x)
                    st=mij+1;
                else
                    dr=mij-1;
            }
            if (a[dr]==x)
                cout<<dr<<"\n";
            else
                cout<<-1<<'\n';
        }
        else if(t==1){
          while(st<=dr){
            mij=(st+dr)>>1;
            if(a[mij]<=x)
                st=mij+1;
            else dr=mij-1;
          }
        cout<<dr<<'\n';
        }
        else{
         while(st<=dr){
            mij=(st+dr)>>1;
            if(a[mij]<x)
                st=mij+1;
            else dr=mij-1;
          }
          cout<<st<<'\n';
        }

    }
}