Cod sursa(job #2710466)

Utilizator bubblegumixUdrea Robert bubblegumix Data 22 februarie 2021 16:43:44
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#include<iterator>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");

int n, m;
vector<int> a;
int main()
{
	f >> n;
	for (int i = 1; i <= n; i++)
	{
		int x;
		f >> x;	
		a.push_back(x);
	}
	sort(begin(a), end(a)); 
	f >> m;
	for (int i = 1; i <= m; i++)
	{
		int q, x;
		vector<int>::iterator it;
		f >> q >> x;
		switch (q)
		{
		case 0:
			it = upper_bound(begin(a), end(a), x);
			if ( *(it-1) == x)
				g << it-begin(a);
			else
				g << -1 ;
			break;
		case 1:
			it = lower_bound(begin(a), end(a), x + 1);
			g << it-begin(a);
			break;
		case 2:
			it = upper_bound(begin(a), end(a), x - 1);
			g<< it - begin(a) + 1;
			break;
		}
		g << endl;
	}
}