Cod sursa(job #852732)

Utilizator alexandru213Bracau Alexandru alexandru213 Data 11 ianuarie 2013 17:48:38
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int p,u,m,n,a[100001],x,i,q,caut,l;
int main () {
	in>>n;
	for(i=1;i<=n;i++){
		in>>a[i];}
	in>>l;
for(i=1;i<=l;i++){
	
	p=1;
	u=n;
		in>>caut>>x;q=0;
		if(caut==0 ||caut ==1){
		while(p<=u){
			m=(p+u)/2;
			if(x>=a[m]){
				q=m;
				p=m+1;}
			else 
					u=m-1;
				}
		if(caut==0){
		if(q==0||a[q]!=x)
			out<<-1<<'\n';
		 else
			out<<q<<'\n';
		}
		else
			 out<<q<<'\n';
		}
		else{
			while(p<=u){
			m=(p+u)/2;
			if(x<=a[m]){
				q=m;
				u=m-1;}
			else 
					p=m+1;
				}
			out<<q<<'\n';
			
		}
}
return 0;
}