Cod sursa(job #2270843)

Utilizator Bogdy_PPrunescu Bogdan Bogdy_P Data 27 octombrie 2018 17:26:44
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");

int n, A[10010],q, Q, x, y;
int main()
{
    in >> n;
    for(int i = 1;i <= n;i++)
        in >> A[i];
    in >> q;
    for(int i = 1;i <= q;i++)
    {
        in >> Q >> x;
        if(Q == 0)
        {
            y = upper_bound(A + 1,A + n + 1,x) - A - 1;
            if(y <= n && y >= 1 && A[y] == x) out << y << '\n';
            else out << -1 << '\n';
        }
        else if(Q == 1) out << lower_bound(A + 1,A + n + 1,x + 1) - A - 1 << '\n';
        else out << upper_bound(A + 1,A + n + 1,x - 1) - A  << '\n';
    }
    return 0;
}