Cod sursa(job #412202)

Utilizator cezyGrigore Cezar cezy Data 5 martie 2010 13:47:21
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
#include<algorithm>
using namespace std;
int v[100005];
int main ()
{
	ifstream fin("cautbin.in");
	ofstream fout("cautbin.out");
	int i,n,m,x,y,poz;
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>v[i];
	fin>>m;
	sort(v+1,v+n+1);
	for(i=1;i<=m;i++)
	{
		fin>>x>>y;
		if(x==0)
		{
			poz=upper_bound(v+1,v+n+1,y)-v-1;
			if(v[poz]==y && poz>=1 && poz<=n) fout<<poz<<"\n";
			else fout<<-1<<"\n";
		}
		if(x==1) 
		{
			poz=upper_bound(v+1,v+n+1,y+1)-v-1;
			fout<<poz<<"\n";
		}
		if(x==2)
		{
			poz=lower_bound(v+1,v+n+1,y-1)-v;
			fout<<poz<<"\n";
		}
	}
	fin.close ();
	fout.close ();
	return 0;
}