Cod sursa(job #913518)

Utilizator Sm3USmeu Rares Sm3U Data 13 martie 2013 16:41:38
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int a[100100];
int n;

void citire(){
    scanf("%d", &n);
    for(int i = 0; i < n; ++ i){
        scanf("%d", &a[i]);
    }
}

void rez(){
    int m = 0;
    scanf("%d", &m);
    while(m --){
        int caz;
        int x;
        scanf("%d", &caz);
        scanf("%d", &x);
        if(caz == 0){
            int p = upper_bound(a,a + n, x) - a;
            if(x >= 0 && a[p - 1] == x){
                printf("%d\n", p);
            }else{
                printf("-1\n");
            }
        }
        if(caz == 2){
            printf("%d\n", lower_bound(a, a + n, x) - a + 1);
        }
        if(caz == 1){
            printf("%d\n", upper_bound(a, a + n, x) - a);
        }
    }
}

int main()
{
    freopen("cautbin.in", "r", stdin);
    freopen("cautbin.out", "w", stdout);


    citire();
    rez();

    return 0;
}