Cod sursa(job #213574)

Utilizator madmanjonesJones the one madmanjones Data 10 octombrie 2008 15:29:02
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>
int t,x,n,v[100000];
int search(){
	int p=1,u=n,m;
	while (p!=u){
		m=(p+u)/2;
		if (x<=v[m])
			u=m;
		else
			p=m+1;
	}
	if (t==0)
		if(v[p]==x)
			return p;
		else
			return -1;
	if (t==1)
		if (v[p]>x)
			return p-1;
		else
			return p;
	if (v[p]<x)
		return p+1;
	return p;
}
void write(int i){
	printf("%d\n",i);
}
void read(){
	scanf("%d%d",&t,&x);
}
int main(){
	int i,m;
	freopen("cautbin.in","r",stdin);
	freopen("cautbin.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;++i)
		scanf("%d",&v[i]);
	scanf("%d",&m);
	for (i=1;i<=m;++i){
		read();
		write(search());
	}	
}