Cod sursa(job #1698818)

Utilizator ArkinyStoica Alex Arkiny Data 5 mai 2016 14:44:50
Problema Cautare binara Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;

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

int N, Q, v[100010];

int main()
{
	in >> N;

	for (int i = 1;i <= N;++i)
		in >> v[i];

	in >> Q;


	for (int i = 1;i <= Q;++i)
	{
		int o, x;

		in >> o >> x;

		if (o == 0)
		{
			int p = upper_bound(v + 1, v + N + 1, x) - v;
			if (p != N + 1 && p - 1 != 0 && v[p - 1] == x)
				out << p - 1 << '\n';
			else
				out << "-1\n";
		}
		else if (o == 1)
			out<<lower_bound(v + 1, v + N + 1, x+1) - v - 1<<'\n';
		else
			out<<upper_bound(v + 1, v + N + 1, x-1) - v<<'\n';


	}



	return 0;


}