Cod sursa(job #932373)

Utilizator iuli1505Parasca Iuliana iuli1505 Data 28 martie 2013 21:05:52
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<cstdio>
#include<algorithm>
#include<vector>
#define nmax 100001
using namespace std;
int n,m,key,x,v[nmax];
int main()
{
    int i, poz;
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);
    scanf("%d", &n);
    for(i=0;i<n;i++)
        scanf("%d", &v[i]);
    scanf("%d", &m);
    for(i=1;i<=m;i++)
    {
        scanf("%d%d", &key, &x);
        if(key==0)
        {
            poz=upper_bound(v,v+n,x)-v-1;
            if(poz>=1&&poz<=n&&v[poz]==x)
                printf("%d\n",poz+1);
            else
                printf("-1\n");
            continue;
        }
        if(key==1)
        {
            poz=lower_bound(v,v+n,x+1)-v-1;
            printf("%d\n", poz+1);
            continue;
        }
        if(key==2)
        {
            poz=upper_bound(v,v+n,x-1)-v;
            printf("%d\n",poz+1);
        }
    }
    return 0;
}