Cod sursa(job #1146525)

Utilizator irimiecIrimie Catalin irimiec Data 19 martie 2014 08:31:24
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <iostream>
#include <algorithm>

using namespace std;

ifstream f("cautbin.in");
ofstream g("cautbin.out");

int n, m, x, y, type, sir[100100];

int main()
{
	f >> n;
	for(int i = 1; i <= n; ++i)
		f >> sir[i];
	f >> m;
	while(m--)
	{
		f >> type >> y;
		if(type == 0)
		{	
			x = upper_bound(sir + 1, sir + n + 1, y) - sir - 1;
			if(x > 0 && x <= n && sir[x] == y)
				g << x << "\n";
			else
				g << "-1\n";
		}
		else if(type == 1)
		{
			x = lower_bound(sir + 1, sir + n + 1, y + 1) - sir - 1;
			g << x << '\n';
		}
		else
		{
			x = upper_bound(sir + 1, sir + n + 1, y - 1) - sir;
			g << x << '\n';
		}
	}
}