Cod sursa(job #749008)

Utilizator fhandreiAndrei Hareza fhandrei Data 15 mai 2012 16:26:00
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
//Include
#include <fstream>
using namespace std;

//Constante
const int MAX_SIZE = (int)1e5+1;

//Variabile
ifstream in("cautbin.in");
ofstream out("cautbin.out");

int elements, questions;
int values[MAX_SIZE];

//Main
int main()
{
	in >> elements;
	for(int i=0 ; i<elements ; ++i)
		in >> values[i];
	
	in >> questions;
	
	int type, value;
	int *pos, *end = values+elements;
	while(questions--)
	{
		in >> type >> value;
		
		switch(type)
		{
			case 0:
			{
				out << ((*((pos = upper_bound(values, end, value))-1) == value)? pos - values : -1) << '\n';
				break;
			}
			case 2:
			{
				out << lower_bound(values, end, value) - values + 1 << '\n';
				break;
			}
			default: out << upper_bound(values, end, value) - values << '\n';
		}
		
		
		
	}
	
	
	
	in.close();
	out.close();
	return 0;
}