Cod sursa(job #316223)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 18 mai 2009 20:47:48
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
pair< int*, int*> r;
int m,n,i,p,u,v,c,x[100010];
void readd(),solve();
int main()
{
	readd();
	for(;m;m--)solve();
	return 0;
}
void readd()
{
	freopen("cautbin.in","r",stdin);
	freopen("cautbin.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)scanf("%d",&x[i]);
	scanf("%d",&m);
}
void solve()
{
	scanf("%d%d",&c,&v);
	r=equal_range(x+1,x+n+1,v);
	p=r.first-x;u=r.second-x;
	if(p==u)
	{
		if(c==0){printf("-1");return;}
		if(c==1){printf("%d\n",p-1);return;}
		printf("%d\n",u);return;
	}
	if(c==0){printf("%d\n",u-1);return;}
	if(c==1){printf("%d\n",p);return;}
	printf("%d\n",u);return;
}