Cod sursa(job #870233)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 3 februarie 2013 00:00:05
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
int n,m,v[100002],a,b,st,dr,mij,r,i,x;

int main(){
    freopen("cautbin.in","rt",stdin);
    freopen("cautbin.out","wt",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;i++){
        scanf("%d",v+i);
    }
    scanf("%d",&m);
    for (i=1;i<=m;i++){
        scanf("%d%d",&a,&b);
        st=1;dr=n;
        while(st<=dr){
            mij=st+(dr-st)/2;
            if (b<v[mij])dr=mij-1;
            else st=mij+1;
        }
        if (a==0){
            if (v[dr]==b)x=dr;
            else x=-1;
        } else
            if (a==1)x=dr;
            else x=st;
        printf("%d\n",x);
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}