Cod sursa(job #1912032)

Utilizator PopeangaMihneaPopeanga Mihnea- Stefan PopeangaMihnea Data 7 martie 2017 22:42:36
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.34 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, i, j, t, p, mi, a, m, x[100001];
bool ok;
int main()
{
    fin>>n;
    for(i=1; i<=n; ++i) fin>>x[i];
    fin>>mi;
    for(t=1; t<=mi; ++t)
    {
        fin>>p>>a;
        if(p==0)
        {
            i=1; j=n;
            while(i<=j)
            {
                m=(i+j)/2;
                if(x[m]<=a)
                {
                    i=m+1;
                }
                else j=m-1;
            }
            m=(i+j)/2;
            if(x[m]>a) --m;
            if(x[m]==a)
            {
                ok=1;
            }
            if(ok) fout<<m<<"\n";
            else fout<<"-1";
        }
        if(p==1)
        {
            i=1; j=n;
            while(i<j)
            {
                m=(i+j)/2;
                if(x[m]<=a) i=m+1;
                else j=m;
            }
            m=(i+j)/2;
            if(x[m]>a) --m;
            fout<<m<<"\n";
        }
        if(p==2)
        {
            i=1; j=n;
            while(i<j)
            {
                m=(i+j)/2;
                if(x[m]<a) i=m+1;
                else j=m;
            }
            m=(i+j)/2;
            if(x[m]<a) ++m;
            fout<<m<<"\n";
        }
    }
    return 0;
}