Cod sursa(job #2203194)

Utilizator thorionTrifu Andrei thorion Data 11 mai 2018 12:42:11
Problema Cautare binara Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 1.53 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    scanf("%d", &n);
    int v[n];
    int nr;
    int operatii[nr][2];

    for(int i = 0; i < n; i++)
    {
        scanf("%d", &v[i]);
    }

    scanf("%d", &nr);
    for(int i = 0; i < nr; i++)
    {
        scanf("%d %d", &operatii[i][0], &operatii[i][1]);
    }

    int start = 0;
    int end = n - 1;
    int index = -1;

    while(start <= end)
    {
        int mid = start + (end - start)/2;

        if(operatii[0][1] == v[mid]) {
            index = mid;
            start = mid + 1;
        }
        else if(v[mid] < operatii[0][1])
        {
            start = mid + 1;
        }
        else if(v[mid] > operatii[0][1])
        {
            end = mid - 1;
        }

    }

    printf("%d\n", index+1);
    fflush(stdout);

    start = 0;
    end = n - 1;
    index = -1;

    while(start <= end)
    {
        int mid = start + (end - start)/2;

        if(v[mid] <= operatii[1][1]) {
            index = mid;
            start = mid + 1;
        }
        else if(v[mid] > operatii[1][1])
        {
            end = mid - 1;
        }

    }
    
    printf("%d\n", index+1);
    fflush(stdout);

    start = 0;
    end = n - 1;
    index = -1;

    while(start <= end)
    {
        int mid = start + (end - start)/2;

        if(operatii[2][1] <= v[mid]) {
            index = mid;
            end = mid - 1;
        }
        else if(v[mid] < operatii[1][1])
        {
            start = mid + 1;
        }

    }

    printf("%d\n", index+1);
    fflush(stdout);

    return 0;
}