Cod sursa(job #2400447)

Utilizator S_AndyAndrei S S_Andy Data 8 aprilie 2019 19:05:12
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n, *v;

int main() {
	fin >> n;
	v = new int[n];
	for (int i = 0; i < n; ++i) {
		fin >> v[i];
	}
	int m, t, val, rez;
	for (fin >> m; m > 0; --m) {
		fin >> t >> val;
		switch (t) {
		case 0:
			rez = upper_bound(v, v + n, val) - v - 1;
			if (rez == n || v[rez] != val) {
				rez = -2;
			}
			break;
		case 1:
			rez = upper_bound(v, v + n, val) - v - 1;
			break;
		case 2:
			rez = upper_bound(v, v + n, val - 1) - v;
			break;
		}
		fout << ++rez << "\n";
	}
}