Cod sursa(job #2641477)

Utilizator teofilotopeniTeofil teofilotopeni Data 11 august 2020 16:19:11
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <stdio.h>
using namespace std;

int v[100001];

int main()
{
    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);
    int n, m, i, x, y, poz;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf("%d", &v[i]);
    }
    for (scanf("%d", &m); m > 0; m--)
    {
        scanf("%d %h", &x, &y);
        poz = -1;
        if (x == 0)
        {
            i = n;
            if (v[n / 2] > y)
                i = n / 2;
            for (; i > 0 && poz < 1; i--)
            {
                if (v[i] == y)
                    poz = i;
            }
        }
        else if (x == 1)
        {
            i = n;
            if (v[n / 2] > y)
                i = n / 2;
            for (; i > 0 && poz < 1; i--)
            {
                if (v[i] <= y)
                    poz = i;
            }
        }
        else
        {
            i = 1;
            if (v[n / 2] < y)
                i = n / 2;
            for (; i <= n && poz < 1; i++)
            {
                if (v[i] >= y)
                    poz = i;
            }
        }
        printf("%d\n", poz);
    }
    return 0;
}