Cod sursa(job #442046)

Utilizator myshuSpatariu Mihai-Constantin myshu Data 13 aprilie 2010 20:23:53
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream.h>
int main ()
{
	ifstream fcin("cautbin.in");
	ofstream fcout("cautbin.out");
	int n,i,m,v[100001],a,b,y,x,piv;
	fcin>>n;
	for(i=1;i<=n;i++)
		fcin>>v[i];
	fcin>>m;
	for(i=1;i<=m;i++)
		{fcin>>y>>x;
		piv=n/2+n%2;a=1;b=n;
				  while(a<b)
					  {if(v[piv]<=x)
					        a=piv;
					   else b=piv;
						if(v[(a+b)/2+(a+b)%2]<=x)piv=(a+b)/2+(a+b)%2;
						else break;}
					  if(y==0||y==1)fcout<<piv<<'\n';
					  else {while(v[piv]==x)piv--;
					  fcout<<piv+1<<'\n';}
					 }
return 0;
}