Cod sursa(job #574021)

Utilizator niculae95Manea Matei niculae95 Data 6 aprilie 2011 19:18:45
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[10000000];
int main()
{
	int n,i,x,k,pas,j,m,pas1,pas2,q;
	in>>n;
	pas=1<<14;
	pas1=1<<14;
	pas2=1<<14;
	for(i=1;i<=n;i++)
		in>>v[i];
	in>>m;
	for(j=1;j<=m;j++)
	{
		in>>j;
	    in>>x;
	}
	for(i=0;pas!=0;pas>>=1)
		if(i+pas<=n && v[i+pas]<=x)
			i+=pas;
	if(v[i]==x)
		out<<j;
	else
		out<<"-1";
	out<<"\n";
	for(k=0;pas1!=0;pas1>>=1)
		if(k+pas1<=n && v[k+pas1]<=x)
			k+=pas1;
	if(v[k]==x)
		out<<k;
	else
		out<<"-1";
	out<<"\n";
	for(q=0;pas2!=0;pas2>>=1)
		if(q+pas2<=n && v[q+pas2]>x)
			q+=pas2;
	if(v[q]<x)
		out<<q+2;
	else
		out<<"-1";
	return 0;
}