Cod sursa(job #428735)

Utilizator miticaMitica mitica Data 29 martie 2010 15:16:08
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
# include <algorithm>

using namespace std;

int a[100005],n,m,i,x,y,t;

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]);
	sort(a+1,a+n+1);
	scanf("%d", &m);
	for (i=1;i<=m;i++)
	{
		scanf("%d %d", &t, &y);
		if (!t)
		{
			x=upper_bound(a+1,a+n+1,y)-a-1;
			if (x>=1 && x<=n && a[x]==y) printf("%d\n", x);
				else printf("-1\n");
		}
		else
		if (t==1)
		{
			x=lower_bound(a+1,a+n+1,y+1)-a-1;
			printf("%d\n", x);
		}
		else
		{
			x=upper_bound(a+1,a+n+1,y-1)-a;
			printf("%d\n", x);
		}
	}
	return 0;
}