Cod sursa(job #1112106)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 19 februarie 2014 13:53:59
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.27 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n, t, i, j, v[100010], T, m, x, p, u, ok;
int main(){
    f>>n;
    for(i=1; i<=n; i++)
        f>>v[i];
    f>>t;
    for(;t;t--)
    {
        f>>T>>x;
        if(T==0)
        {
            p=1;
            u=n;
            ok=-1;
            while(p<=u)
            {
                m=(p+u)/2;
                if(v[m]<=x)
                    p=m+1;
                else
                    u=m-1;
            }
            if(v[u]==x)
                g<<u<<"\n";
            else
                g<<"-1\n";
        }
        else if(T==1)
        {
            p=1;
            u=n;
            ok=-1;
            while(p<=u)
            {
                m=(p+u)/2;
                if(v[m]<=x)
                    p=m+1;
                else
                    u=m-1;
            }
            g<<u<<"\n";
        }
        else
        {
            p=1;
            u=n;
            ok=-1;
            while(p<=u)
            {
                m=(p+u)/2;
                if(v[m]<x)
                    p=m+1;
                else
                    u=m-1;
            }
            g<<p<<"\n";
        }
    }
    return 0;
}