Cod sursa(job #2164993)

Utilizator CodCatalinCodreanu Catalin CodCatalin Data 13 martie 2018 10:44:55
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
using namespace std;

ifstream f("cautbin.in");
ofstream g("cautbin.out");

int n,v[100002],m,a,b,rez,ua[100002],pa[100002],p1,p2,mij,poz;
int main()
{
    f>>n;
    for(int i=1;i<=n;++i)f>>v[i];
    f>>m;
    for(int i=1;i<=m;++i)
    {
        f>>a>>b;
        if(a<=1)
        {
            p1=1,p2=n,mij=n/2,poz=0;
            while(p1<p2)
            {
                mij=(p1+p2)/2;
                if(v[mij]<=b){p1=mij+1;poz=mij;}
                else p2=mij-1;
            }
            if(a==0&&v[poz]<b)g<<-1;
            else g<<poz;
            g<<'\n';
        }
        else
        {
            p1=1,p2=n,mij=n/2,poz=0;
            while(p1<=p2)
            {
                mij=(p1+p2)/2;
                if(v[mij]>=b){p2=mij-1;poz=mij;}
                else p1=mij+1;
            }
            g<<poz<<'\n';
        }
    }
    return 0;
}