Cod sursa(job #1316878)

Utilizator raztaapDumitru raztaap Data 14 ianuarie 2015 11:44:23
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#include <algorithm>
#define MAXN 100100
using namespace std;
int V[MAXN], n,m;
void rezolva_problema()
{
    int i, t, x, y;
    scanf("%d", &n);
    for(i=1;i<=n;++i)
        scanf("%d", &V[i]);
    scanf("%d", &m);
    for(i=1;i<=m;++i)
    {
        scanf("%d%d", &t, &x);
        if(t==0)
        {
            y=upper_bound(V+1, V+n+1, x) - V-1;
            if(y>=1&&y<=n&&V[y]==x)
                printf("%d\n", y);
            else
                printf("-1\n");
        }
        else
            if(t==1)
            {
                y=lower_bound(V+1, V+n+1, x+1)-V-1;
                printf("%d\n", y);
            }
            else
            {
                y=upper_bound(V+1, V+n+1, x-1)-V;
                printf("%d\n", y);
            }
    }
}
int main()
{
    freopen("cautbin.in", "r", stdin);
    freopen("cautbin.out", "w", stdout);
    rezolva_problema();
    return 0;
}