Cod sursa(job #769857)

Utilizator shagarthAladin shagarth Data 21 iulie 2012 10:40:43
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
long v[100010],x,i,k,n,m,y;

long caut0(long y,long n)
{
	int ok=0;	
	for(i=n;i>=1;i--)
	{
		if(v[i]==y)
		{
			ok=1;
			break;
		}
	}
	
	if(ok==1)
		return i;
	else
		return -1;
	
}
long caut1(long y,long n)
{

	for(i=n;i>=1;i--)
	{
		if(v[i]<=y)
		{	
			break;
		}
	}
	return i;

}
long caut2(long y,long n)
{

	for(i=1;i<=n;i++)
	{
		if(v[i]>=y)
		{	
			break;
		}
	}
	return i;
}
int main()
{
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>v[i];
	}
	f>>m;
	while(m>0)
	{
		f>>x>>y;
		switch(x)
		{
		case 0:{g<<caut0(y,n)<<"\n";break;};
		case 1:{g<<caut1(y,n)<<"\n";break;};
		case 2:{g<<caut2(y,n)<<"\n";break;};
		}
		m--;
	}
	f.close();
	g.close();
	return 0;
}