Cod sursa(job #2794661)

Utilizator daria_pDaria Popescu daria_p Data 5 noiembrie 2021 11:34:22
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.23 kb
#include <fstream>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,i,j,p,u,mij,sol,t,x,v[100005],m;
int main()
{
    fin >>n;
    for (i=1;i<=n;i++)
    {
        fin >>v[i];
    }
    fin >>m;
    for (i=1;i<=m;i++)
    {
        fin >>t>>x;
        if (t==0)
        {
            sol=-1;
            p=1;
            u=n;
            while (p<=u)
            {
                mij=(p+u)/2;
                if (v[mij]==x) {sol=mij;p=mij+1;}
                else if (v[mij]<x) p=mij+1;
                else u=mij-1;
            }
            fout <<sol<<'\n';
        }
        else if (t==1)
        {
            sol=-1;
            p=1;
            u=n;
            while (p<=u)
            {
                mij=(p+u)/2;
                if (v[mij]<=x) {sol=mij;p=mij+1;}
                else u=mij-1;
            }
            fout <<sol<<'\n';
        }
        else
        {
            sol=-1;
            p=1;
            u=n;
            while (p<=u)
            {
                mij=(p+u)/2;
                if (v[mij]>=x) {sol=mij;u=mij-1;}
                else p=mij+1;
            }
            fout <<sol<<'\n';
        }
    }
    return 0;
}