Cod sursa(job #1162616)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 31 martie 2014 21:36:41
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<cstdio>
#include<algorithm>
using namespace std;
const int nmax = 100005;
int n,i,a[nmax],m,x,poz;
int main()
{
	freopen("cautbin.in","r",stdin);
	freopen("cautbin.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++) scanf("%d",&a[i]);
	scanf("%d",&m);
	for(;m;m--)
	{
	    scanf("%d%d",&i,&x);
	    if(i==0)
	    {
	        poz=upper_bound(a+1,a+n+1,x)-a;
	        if(a[poz-1]==x) printf("%d\n",poz-1);
	        else printf("-1\n");
	    }
	    else if(i==1)
	    {
            poz=upper_bound(a+1,a+n+1,x)-a;
            printf("%d\n",poz-1);
	    }
	    else
	    {
            poz=lower_bound(a+1,a+n+1,x)-a;
            printf("%d\n",poz);
	    }
	}
	return 0;
}