Cod sursa(job #1802618)

Utilizator misu97Mihai Ueban misu97 Data 10 noiembrie 2016 15:20:14
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>
 
using namespace std;
ifstream f1("cautbin.in");
ofstream f2("cautbin.out");
 
int l,r,sol=-1,n,y[100005],x,i,m,p;
 
int main()
{
    f1>>n;
    for(i=1;i<=n;++i){
        f1>>y[i];
    }
 
    f1>>m;
 
    for(i=1;i<=m;++i){
    f1>>p>>x;
    l=1; r=n;sol=-1;
 
        if(p==0){
                while(l<=r){
        int mid;
        mid=(l+r)/2;
        if(y[mid]==x){
            sol=mid;
            l=mid+1;
        }
        else {
            if(y[mid]<x){l=mid+1;}
            else{r=mid-1;}
        }
        }
        }
 
        if(p==1){
                while(l<=r){
        int mid;
        mid=(l+r)/2;
        if(y[mid]<=x){
            sol=mid;
            l=mid+1;
        }
 
            else{r=mid-1;}
        }
 
        }
 
        if(p==2){
                while(l<=r){
        int mid;
        mid=(l+r)/2;
        if(y[mid]>=x){
            sol=mid;
            r=mid-1;
        }
      else{l=mid+1;}
        }
    }
 
    f2<<sol<<'\n';
 
    }
 
    return 0;
}