Cod sursa(job #2203196)

Utilizator thorionTrifu Andrei thorion Data 11 mai 2018 13:00:01
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.58 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");

int main()
{
    int n;
    fin >> n;
    int v[n];
    int nr;
    

    for(int i = 0; i < n; i++)
    {
        fin>>v[i];
    }

    fin >> nr;
    int operatii[nr][2];
    for(int i = 0; i < nr; i++)
    {
        fin >> 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;
        }

    }

    fout << index+1 << endl;
    fout.flush();

    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;
        }

    }
    
    fout << index+1 << endl;
    fout.flush();

    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;
        }

    }

    fout << index+1 << endl;
    fout.flush();

    return 0;
}