Cod sursa(job #2019112)

Utilizator VarticeanNicolae Varticean Varticean Data 6 septembrie 2017 23:08:23
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;

int n, a[100009];
void read()
{
   cin >> n;
   for(int i=0; i<n; i++)
      cin >> a[i];
}

int main()
{
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out", "w", stdout);
    read();
    int m, c, x, k; cin >> m;
    while(m--)
    {
        cin >> c >> x;
            if ( !c )
            {
                k = upper_bound(a,a+n,x)-a;
                if( k && a[k-1] == x ) cout << k << '\n'; else cout << -1;
            }
            if( c==1)
                cout << upper_bound(a, a+n,x)-a << '\n';
            if( c==2 )
                cout << lower_bound(a,a+n,x)-a +1 << '\n';
    }

    return 0;
}