Cod sursa(job #2588109)

Utilizator KernelovicNegrean Victor Kernelovic Data 24 martie 2020 14:16:21
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
	
using namespace std;

vector<int> sir;

int main () 
{
    freopen("cautbin.in", "r", stdin);
    freopen("cautbin.out", "w", stdout);
    
    int n; cin >> n;
    int x;
	
    while(n)
    {
        cin >> x;
        sir.push_back(x);
        n--;
    }
	
    int m, cerinta;
    cin >> m;
	
    while(m) 
    {
		m--;
        cin >> cerinta >> x;
        
        if(!cerinta)
        {
			if(!binary_search(sir.begin(), sir.end(), x)) cout << -1 << '\n';
			else cout << upper_bound(sir.begin(), sir.end(), x) - sir.begin() << '\n';
		}
		else if(cerinta == 1) cout << lower_bound(sir.begin(), sir.end(), x + 1) - sir.begin() << '\n';
		else cout << upper_bound(sir.begin(), sir.end(), x - 1) - sir.begin() + 1 << '\n';
    }
}