Cod sursa(job #677491)

Utilizator gabrielvGabriel Vanca gabrielv Data 10 februarie 2012 11:50:45
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
using namespace std;
#include<fstream>
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long long v[100005],n,m;

int zero(int x)
{
	int p=0,i;
	for(i=n;(i>=1)&&(!p);i--)
		if(v[i]==x) p=i;
	return p;
}

int unu(int x)
{
	int p=0,i;
	for(i=n;(i>=1)&&(!p);i--)
		if(v[i]<=x) p=i;
	return p;
}

int doi(int x)
{
	int p=0,i;
	for(i=1;(i<=n)&&(!p);i++)
		if(v[i]>=x) p=i;
	return p;
}

int main()
{
	int i,a,x;
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>v[i];
	fin>>m;
	for(i=1;i<=m;i++)
	{
		fin>>a>>x;
		switch(a)
		{
			case 0: {if(zero(x)!=0) fout<<zero(x)<<"\n"; else fout<<"-1 \n "; break;}
			case 1: {fout<<unu(x)<<"\n"; break;}
			case 2: {fout<<doi(x)<<"\n"; break;}
		}
	}
	fin.close();
	fout.close();
	return 0;
}