Cod sursa(job #619762)

Utilizator cristianalex81Cristian Alexandru cristianalex81 Data 16 octombrie 2011 02:48:06
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;
vector <int> a;
int n,m;

int main()
{
    int index,i,t,x;
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&t);
        a.push_back(t);
    }
    scanf("%d",&m);
    for (i=0;i<m;i++)
    {
        int dim = (int) (a.end() - a.begin());
        scanf("%d %d",&t,&x);
        if (t==0)
        {
            index=(int)(upper_bound(a.begin(),a.end(),x)-a.begin());
            if (a[index-1]==x)
                printf("%d\n",index);
            else
                printf("-1\n");
        }
        if (t==1)
        {
            index=(int)(upper_bound(a.begin(),a.end(),x)-a.begin());
            printf("%d\n",index);
        }
        if (t==2)
        {
            index=(int)(lower_bound(a.begin(),a.end(),x)-a.begin());
            printf("%d\n",index+1);
        }
    }
    return 0;
}