Cod sursa(job #306052)

Utilizator bog29Antohi Bogdan bog29 Data 19 aprilie 2009 15:26:40
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#define dmax 100002
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int sir[dmax],n,m,tip,nr;
int bs(int st,int dr)
{	int mid;
	if((abs(st-dr)==1)||(st==dr))
	{	if(tip==1)return st;
		else if(tip==2)return dr;
	}
	else
	mid=(st+dr)/2;
	if(sir[mid]==nr)return mid;
	else if(sir[mid]>nr)return bs(st,mid);
	else if(sir[mid]<nr)return bs(mid,dr);
}	
int main()
{	int i;
	in>>n;
	for(i=1;i<=n;i++)
		in>>sir[i];
	in>>m;
	for(i=1;i<=m;i++)
	{	in>>tip>>nr;
		out<<bs(1,n)<<'\n';
	}
	in.close();
	out.close();
	return 0;
}