Cod sursa(job #1223281)

Utilizator BlueStrutAndrei Prahoveanu BlueStrut Data 25 august 2014 22:52:21
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int i, op, a[10001], n, m, x, val1, val2;
int main(){
    //val1=lower_bound(a+1, a+n+1, x)-a-1;
    //val2=upper_bound(a+1, a+n+1, x)-a-1;
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);
    scanf("%d", &n); for (i=1;i<=n;i++) scanf("%d", &a[i]); sort(a+1, a+n+1);
    scanf("%d", &m); for (i=1;i<=m;i++) {
        scanf("%d%d", &op, &x);
        if (op==0) {
            val2=upper_bound(a+1, a+n+1, x)-a-1;
            if ((val2<=n)&&(val2>=1)&&(a[val2]==x)) printf("%d\n", val2);
                else printf("-1\n");
        }
        if (op==1) {
            val1=lower_bound(a+1, a+n+1, x+1)-a-1;
            printf("%d\n", val1);
        }
        if (op==2) {
            val2=upper_bound(a+1,a+n+1, x-1)-a;
            printf("%d\n", val2);
        }
    }
    return 0;
}