Cod sursa(job #679956)

Utilizator lucian666Vasilut Lucian lucian666 Data 13 februarie 2012 21:25:54
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#include<algorithm>
#define NN 100001
using namespace std;
ofstream out("cautbin.out");
int v[NN],n,m,y,t,poz;
int main()
{
	ifstream in("cautbin.in");
	in>>n;
	for(int i=1;i<=n;i++)
		in>>v[i];
	sort(v+1,v+n+1);
	in>>m;
	for(int i=1;i<=m;i++)
	{
		in>>t>>y;
		if(t==0)
		{
			poz=upper_bound(v+1,v+n+1,y)-v-1;
		if(poz<=n&&poz>=1&&v[poz]==y)
			out<<poz<<'\n';
		else
			out<<-1<<'\n';
		}
		else if(t==1)
		{
			
				poz=lower_bound(v+1,v+n+1,y+1)-v-1;
			out<<poz<<'\n';
		}
			else if(t==2)
			{
				
					poz=upper_bound(v+1,v+n+1,y-1)-v;
				out<<poz<<'\n';
			}
	}
	
				
	
	return 0;
}