Cod sursa(job #2372137)

Utilizator grecuDDGrecu Daniel grecuDD Data 6 martie 2019 21:44:52
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;

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

int main()
{
	vector <int> v;
	int n, c, a, x, p;

	f >> n;
	for (int i = 1; i <= n; i++) {
		f >> a;
		v.push_back(a);
	}

	f >> c;
	for (int i = 1; i <= c; i++) {
		f >> a >> x;
		if (a == 0) {
			p = upper_bound(v.begin(), v.end(), x) - v.begin();
			if (p < v.size()) g << p << endl;
			else g << -1 << "\n";
		}
		else if (a == 1) {
			p = lower_bound(v.begin(), v.end(), x + 1) - v.begin();
			g << p << "\n";
		}
		else {
			p = upper_bound(v.begin(), v.end(), x - 1) - v.begin() + 1;
			g << p << "\n";
		}
	}

	f.close();
	g.close();
}