Cod sursa(job #382063)

Utilizator HoricaNicolaescu Horia Horica Data 12 ianuarie 2010 17:45:49
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
int main()
{
	freopen("cautbin.in","r",stdin);
	freopen("cautbin.out","w",stdout);
	int M,N,i,v[100001],tip,x,st,dr,mid;
	scanf("%d",&N);
	st=1;
	dr=N;
	for(i=1;i<=N;i++)
		scanf("%d",&v[i]);

	scanf("%d",&M);
	for(j=1;j<=M;j++)
	{
		scanf("%d %d",&tip,&x);
		if(tip==0)
			while(st<dr)
			{
			mid=(st+dr)/2;
			if(x==mid)
			{
			while(v[mid]==v[mid+1])
			 mid++;
			printf("%d",v[mid]);
			break;
			}
			else if(x<=mid)
				dr=mid;
			else if(x>=mid)
				st=mid;
			else if(x>y)
			{ printf("-1");
			break;}
			}
	}		
	return 0;
}