Cod sursa(job #445519)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 24 aprilie 2010 08:41:41
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<algorithm>
#include<vector>
using namespace std;
vector <int> a(1);
vector <int> ::iterator it;
int n,x,m;
int main()
{
	freopen("cautbin.in","r",stdin);
	freopen("cautbin.out","w",stdout);
	scanf("%d",&n);
	for(;n--;)
	{
		scanf("%d",&x);
		a.push_back(x);
	}
	
	scanf("%d",&m);
	for(;m--;)
	{
		scanf("%d %d\n",&x,&n);

		if(x==0)
		{
			it=lower_bound(a.begin()+1,a.end(),n+1)-1;
			if(*it!=n)
				printf("-1\n");
			else
				printf("%d\n",it-a.begin());
		}
		else
			if(x==1)
			{
				it=lower_bound(a.begin()+1,a.end(),n+1)-1;
				printf("%d\n",it-a.begin());
			}
			else
			{
				it=lower_bound(a.begin()+1,a.end(),n);
				printf("%d\n",it-a.begin());
			}
	}

	return 0;
}