Cod sursa(job #1769647)

Utilizator LizaSzabo Liza Liza Data 2 octombrie 2016 22:01:13
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 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;
}