Cod sursa(job #3038397)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 27 martie 2023 12:31:10
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int i, j, n, m, t, x, st, dr, mid, poz;
int v[100002];
int main() {
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>v[i];
    }
    cin>>m;
    while(m--){
        cin>>t>>x;
        if(t==0){
            st=1;
            dr=n;
            while(st<=dr){
                mid=(st+dr)/2;
                if(v[mid]<=x)
                    st=mid+1;
                else
                    dr=mid-1;
            }
            if(v[dr]==x)
                cout<<dr<<"\n";
            else
                cout<<-1<<"\n";
        }
        if(t==1){
            st=1;
            dr=n;
            while(st<=dr){
               mid=(st+dr)/2;
               if(v[mid]<=x)
                    st=mid+1;
               else
                dr=mid-1;
            }
            cout<<dr<<"\n";
        }
        if(t==2){
            st=1;
            dr=n;
            while(st<=dr){
                mid=(st+dr)/2;
                if(v[mid]>=x)
                    dr=mid-1;
                else
                    st=mid+1;
            }
            cout<<st<<"\n";
        }
    }


}