Cod sursa(job #1631047)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 5 martie 2016 12:50:57
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include <fstream>

using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main()
{
    int n,v[100001],mij,dr,st=0,i,x,cmij,cmij2,j,m;
    bool gasit=0;
    in>>n;
    dr=n-1;
    for(i=0;i<=n-1;i++)
    in>>v[i];
    in>>m;
    for(i=1;i<=m;i++)
    {
        in>>j>>x;
    while(gasit==0 && st<=dr)
    {
        mij=(st+dr)/2;
        if(x>v[mij])
        st=mij;
        else
        if(x<v[mij])
        dr=mij;
        if(x==v[mij])
        gasit=1;
    }
    if(j==0)
    {
    if(st>dr)
    out<<-1;
    else
    {
    while(v[mij]==x)
    mij++;
    out<<mij<<'\n';
    }
    }
    else
    if(j==1)
    {
    while(v[mij]<=x)
    mij++;
    out<<mij;
    }
    else
    if(j==2)
    {
    while(v[mij]==x)
    mij--;
    out<<'\n'<<mij-2;                                                                                                                                                                                                                                                                      ;
    }
    }
    return 0;

}