Cod sursa(job #2302972)

Utilizator Groza_Iulia_DianaGroza Iulia Diana Groza_Iulia_Diana Data 15 decembrie 2018 12:24:47
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

int n, m, x, y, ans, a[100005];

int main()
{
    freopen("cautbin.in", "r", stdin);
    freopen("cautbin.out", "w", stdout);
    scanf("%d", &n);
    for(int i=1; i<=n; i++)
        scanf("%d", &a[i]);
    scanf("%d", &m);
    while(m--)
    {
        scanf("%d%d", &x, &y);
        switch(x)
        {
            case 0:
                ans=upper_bound(a+1, a+n+1, y)-a-1;
                if(a[ans]==y)
                    printf("%d\n", ans);
                else
                    printf("-1\n");
                break;
            case 1:
                ans=lower_bound(a+1, a+n+1, y+1)-a-1;
                printf("%d\n", ans);
                break;
            case 2:
                ans=upper_bound(a+1, a+n+1, y-1)-a;
                printf("%d\n", ans);
                break;
        }
    }
    return 0;
}