Cod sursa(job #2883314)

Utilizator Cristian1231213Petre Cristian Cristian1231213 Data 1 aprilie 2022 13:30:51
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <bits/stdc++.h>

using namespace std;

int n , i , x , a[100005], m , dr , st , q , poz=-1;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
    f >> n ;
    for(i=1;i<=n;i++)f >> a[i];
    f >> m ;
    for(i=1;i<=m;i++){
        f >> q >> x ;
        poz=-1;
        if(q==0){
            dr=1;
            st=n;
            while(dr<=st){
                m=(dr+st)/2;
                if(a[m]<x)dr++;
                else if(a[m]==x)poz=m,dr++;
                else if(a[m]>x)st--;
            }
            g << poz << '\n';
        }
        else if(q==1){
            dr=1;
            st=n;
            while(dr<=st){
                m=(dr+st)/2;
                if(a[m]<=x)poz=m,dr++;
                else if(a[m]>x)st--;
            }
            g << poz << '\n';
        }
        else if(q==2){
            dr=1;
            st=n;
            while(dr<=st){
                m=(dr+st)/2;
                if(a[m]>=x)poz=m,st--;
                else if(a[m]<x)dr++;
            }
            g << poz << '\n';
        }
    }
}