Cod sursa(job #2615798)

Utilizator DenisaCantuCantu Denisa DenisaCantu Data 15 mai 2020 16:39:48
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.18 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100002], poz, n, m, caz, x;
void intrebare1(int x)
{
    int st=1,dr=n,mij;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(v[mij]<=x)
        {
            poz=mij;
            st=mij+1;
        }
        else
            dr=mij-1;
    }
}
void intrebare2(int x)
{
    int st=1,dr=n,mij;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(v[mij]<x)
            st=mij+1;
        else
        {
            poz=mij;
            dr=mij-1;
        }
    }
}
int main()
{
    f>>n;
    for(int i=1;i<=n;++i)
        f>>v[i];
    f>>m;
    for(int i=1;i<=m;++i)
    {
        f>>caz>>x;
        poz=-1;
        if(caz==0)
        {
            intrebare1(x);
            if(v[poz]==x) g<<poz<<'\n';
            else g<<-1<<'\n';

        }
        else
            if(caz==1)
            {
                 intrebare1(x);
                 g<<poz<<'\n';
            }
            else
            {
                intrebare2(x);
                g<<poz<<'\n';
            }
    }
    f.close();
    g.close();
    return 0;
}