Cod sursa(job #2565412)

Utilizator BogauuuBogdan Ivancu Bogauuu Data 2 martie 2020 14:11:15
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>

using namespace std;

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

int n,i,k,q,p,x,st,dr,mij,a[100005];

int main()
{
    fin >> n;
    for (i=1;i<=n;i++) fin >> a[i];
    fin >> k;
    for (q=1;q<=k;q++)
    {
        fin >> p >> x;
        st=1;
        dr=n;
        if (p==2)
        {
            while (st<=dr)
            {
                mij=(st+dr)/2;
                if (a[mij]>=x) dr=mij-1;
                else st=mij+1;
            }
            fout << st;
        }
        else
        {
            while (st<=dr)
            {
                mij=(st+dr)/2;
                if (a[mij]>x) dr=mij-1;
                else st=mij+1;
            }
            if (p==1) fout << dr;
            else
            {
                if (a[dr]!=x) fout << -1;
                else fout << dr;
            }
        }
        fout << "\n";
    }

    return 0;
}