Cod sursa(job #700455)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 1 martie 2012 10:25:28
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	int n,m,i,x;
	vector<int> a;
	vector<int>::iterator j;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) {scanf("%d",&x); a.push_back(x);}
scanf("%d",&m);
while(m)
{
	scanf("%d %d",&n,&x);
	if(n==0)
	{
		j=upper_bound(a.begin(),a.end(),x);
		if(binary_search(a.begin(),a.end(),x))
			printf("%d\n",(int)(j-a.begin()));
		else printf("-1\n");
	}
	if(n==1)
	{
		j=upper_bound(a.begin(),a.end(),x);
		printf("%d\n",(int)(j-a.begin()));
	}
	if(n==2)
	{
		j=lower_bound(a.begin(),a.end(),x);
		printf("%d\n",(int)(j-a.begin())+1);
	}
	m--;
}
return 0;
}