Cod sursa(job #2568684)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 4 martie 2020 09:25:03
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda r3capitusulare Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

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

const int DIM = 1e5 + 1;

int v[DIM];

main()
{
	int n;
	fin >> n;
	
	for(int i = 1; i <= n; ++i)
		fin >> v[i];
	
	int q;
	fin >> q;
	
	for(; q; --q)
	{
		int op, x;
		fin >> op >> x;
		
		int l = 1;
		int r = n;
		
		if(op == 0)
		{
			int pos = upper_bound(v + 1, v + 1 + n, x) - v - 1;
			
			if(pos && v[pos] == x)
				fout << pos << '\n';
			else
				fout << -1 << '\n';
			
			continue;
		}
		
		if(op == 1)
		{
			int pos = lower_bound(v + 1, v + 1 + n, x + 1) - v - 1;
			fout << pos << '\n';
			
			continue;
		}
		
		if(op == 2)
		{
			int pos = lower_bound(v + 1, v + 1 + n, x) - v;
			fout << pos << '\n';
			
			continue;
		}
	}
}