Cod sursa(job #613391)

Utilizator CrilaTurtoi Cristian Crila Data 23 septembrie 2011 22:23:14
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>

using namespace std;

int n,a[100010];

int zero(int x)
{
    int i;
    for (i=n;i>=n && a[i]>x;--i);
    if (a[i]==x)
        return i;
    return -1;
}

int unu(int x)
{
    int i;
    for (i=1;i<=n && a[i]<=x;++i);
    return i-1;
}

int doi(int x)
{
    int i;
    for (i=1;i<=n && a[i]<x;++i);
    return i;
}

int main()
{
    freopen("cautbin.in", "r", stdin);
    freopen("cautbin.out", "w", stdout);
    int i,m,x,tip;
    scanf("%d",&n);
    for (i=1;i<=n;++i)
        scanf("%d",&a[i]);
    scanf("%d",&m);
    while (m--)
    {
        scanf("%d %d",&tip,&x);
        if (tip==0)
            printf("%d\n",zero(x));
        if (tip==1)
            printf("%d\n",unu(x));
        if (tip==2)
            printf("%d\n",doi(x));
    }
    return 0;
}