Cod sursa(job #443809)

Utilizator IlieeUngureanu Ilie Iliee Data 18 aprilie 2010 15:04:45
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<cstdio>
#include<utility>
#include<algorithm>
using namespace std;
void read(), solve();
int c,n,i,m,v,x[100100];
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	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()
{
	//pair<int*,int*> p;
	for(;m;m--)
	{
		scanf("%d%d",&c,&v);
		//p=equal_range(x+1,x+n+1,v);
		if(c==0)
		{
			i=upper_bound(x+1,x+n+1,v)-x-1;
			x[i]==v?printf("%d\n",i):printf("-1\n");
			continue;
		}
		if(c==1)
		{
			i=upper_bound(x+1,x+n+1,v)-x-1;
			printf("%d\n",i);
			continue;
		}
		i=lower_bound(x+1,x+n+1,v)-x;
		printf("%d\n",i);
	}
}