Cod sursa(job #2270833)

Utilizator Bogdy_PPrunescu Bogdan Bogdy_P Data 27 octombrie 2018 17:08:35
Problema Cautare binara Scor 0
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[100001],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,y + 1) - A - 1 << '\n';
        else out << lower_bound(A + 1,A + n + 1,y - 1) - A << '\n';
    }
    return 0;
}