Cod sursa(job #1132387)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 3 martie 2014 07:36:42
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include<fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,v[100001],i,j,k,ok,m,x,y,a,b,mid;
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    fin>>m;
    for(i=1;i<=m;i++){
        fin>>y>>x;
        if(y==0){
            a=1;
            b=n;
            while(a<=b){
                mid=(a+b)/2;
                if(v[mid]>x)
                    b=mid-1;
                else
                    a=mid+1;
            }
            fout<<b<<"\n";
        }
        if(y==1){
            a=1;
            b=n;
            while(a<=b){
                mid=(a+b)/2;
                if(v[mid]<=x)
                    a=mid+1;
                else
                    b=mid-1;

            }
            fout<<b<<"\n";
        }
        if(y==2){
            a=1;
            b=n;
            while(a<=b){
                mid=(a+b)/2;
                if(v[mid]>=x)
                    b=mid-1;
                else
                    a=mid+1;
            }
            fout<<a<<"\n";
        }
    }
    return 0;
}