Cod sursa(job #1330760)

Utilizator TibixbAndrei Tiberiu Tibixb Data 30 ianuarie 2015 22:32:35
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include<fstream>
using namespace std;
int n, m, op, x[100003], p, u, i, mij, k;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main(){
    in>>n;
    for(i=1; i<=n; i++)
        in>>x[i];
    in>>m;
    for(;m--;){
        in>>op>>k;
        if(op==0){
            p=1; u=n;
            while(p<=u){
                mij=p+(u-p)/2;
                if(x[mij]>k)
                    u=mij-1;
                else
                    p=mij+1;
            }
            if(x[u]==k)
                out<<u<<"\n";
            else
                out<<"-1"<<"\n";
            continue;
        }
        if(op==1){
            p=1; u=n;
            while(p<=u){
                mij=p+(u-p)/2;
                if(x[mij]>k)
                    u=mij-1;
                else
                    p=mij+1;
            }
            out<<u<<"\n";
            continue;
        }
        if(op==2){
            p=1; u=n;
            while(p<=u){
                mij=p+(u-p)/2;
                if(x[mij]>=k)
                    u=mij-1;
                else
                    p=mij+1;
            }
            out<<p<<"\n";
            continue;
        }
    }
return 0;
}