Cod sursa(job #1363816)

Utilizator iulia.corneaCornea Ana-Maria-Iulia iulia.cornea Data 27 februarie 2015 11:33:30
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.66 kb
#include <fstream>

using namespace std;

ifstream fin("cautbin.in");
ofstream fout("cautbin.out");

int v[100000];

int main()
{
    int i,n,l,r,m,t1,t2;
    fin>>n;
    for(i=0;i<n;i++)
        fin>>v[i];
    fin>>m;
    for(i=0;i<m;i++)
    {
        fin>>t1>>t2;
        if(t1==0)
        {
            l=0;
            r=n-1;
            int sol = -1;
            while(l<=r)
            {
                if(t2>=v[(l+r)/2])
                {
                    sol = (l+r)/2;
                    l=(l+r)/2+1;
                }
                else
                {
                    r=(l+r)/2-1;
                }
            }
            if(v[sol]==t2)
                fout<<sol+1<<"\n";
            else
                fout<<"-1\n";
        }

        else if(t1==1)
        {
            l=0;
            r=n-1;
            int sol = -1;
            while(l<=r)
            {
                if(t2>=v[(l+r)/2])
                {
                    sol = (l+r)/2;
                    l=(l+r)/2+1;
                }
                else
                {
                    r=(l+r)/2-1;
                }
            }
            fout<<sol+1<<"\n";
        }

        else
        {
            l=0;
            r=n-1;
            int sol = -1;
            while(l<=r)
            {
                if(t2<=v[(l+r)/2])
                {
                    sol = (l+r)/2;
                    r=(l+r)/2-1;
                }
                else
                {
                    l=(l+r)/2+1;
                }
            }
            fout<<sol+1<<"\n";
        }
    }


    return 0;

}