Cod sursa(job #1486179)

Utilizator DeltaMTP Dragos DeltaM Data 14 septembrie 2015 00:00:58
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include<cstdio>
int n,m,i,j,a,b,p,u,mid,v[100100];
FILE *f,*g;
int main(){
    f=fopen("cautbin.in","r");
    g=fopen("cautbin.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(f,"%d",&v[i]);
    }
    fscanf(f,"%d",&m);
    for(i=1;i<=m;i++){
        fscanf(f,"%d%d",&a,&b);
        p=1;
        u=n;
        if(a==0){
            while(p<=u){
                mid=(p+u)/2;
                if(v[mid]<=b)
                    p=mid+1;
                else
                    u=mid-1;
            }
            if(v[u]==b)
                fprintf(g,"%d\n",u);
            else
                fprintf(g,"-1\n");
        }
        if(a==1){
            while(p<=u){
                mid=(p+u)/2;
                if(v[mid]<=b)
                    p=mid+1;
                else
                    u=mid-1;
            }
            fprintf(g,"%d\n",u);
        }
        if(a==2){
            while(p<=u){
                mid=(p+u)/2;
                if(v[mid]<b)
                    p=mid+1;
                else
                    u=mid-1;
            }
            fprintf(g,"%d\n",p);
        }
    }


    fclose(f);
    fclose(g);
    return 0;
}