Cod sursa(job #1152625)

Utilizator xtreme77Patrick Sava xtreme77 Data 24 martie 2014 20:57:58
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <algorithm>

#define MAX 100100

int v[MAX];

using namespace std;

int main()
{
    int poz,i,nr,n,op,x;

    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;++i)scanf("%d",v+i);
    sort(v+1,v+n+1);
    scanf("%d",&nr);
    for(i=1;i<=nr;++i)
    {
        scanf("%d%d",&op,&x);
        if(op==0){
            poz=upper_bound(v+1,v+n+1,x)-v-1;
            if(poz>=1 and poz<=n and v[poz]==x)printf("%d\n",poz);
            else printf("-1\n");
        }
        if(op==1){
            poz=lower_bound(v+1,v+n+1,x+1)-v-1;
            printf("%d\n",poz);
        }
        if(op==2){
            poz=upper_bound(v+1,v+n+1,x-1)-v;
            printf("%d\n",poz);
        }
    }
    return 0;
}