Cod sursa(job #1445856)

Utilizator stefan_andrei7Stefan Barabulea stefan_andrei7 Data 31 mai 2015 11:31:39
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#define MAX 100001
using namespace std;
int v[MAX],n,m,x;
ifstream f("cautbin.in");
ofstream g("cautbin.out");

int cautbin01()
{
    int st=1,dr=n,mij;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(v[mij]<=x)
            st=mij+1;
        else
            dr=mij-1;
    }
    return dr;
}
int cautbin02()
{
    int st=1,dr=n,mij;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(v[mij]<x)
            st=mij+1;
        else
            dr=mij-1;
    }
    return st;
}
int main()
{
    f>>n;
    int i;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    int t;
    for(i=1;i<=m;i++)
    {
        f>>t>>x;
        if(t<2)
        {
            int rezultat=cautbin01();
            if (t==0 && v[rezultat]!=x)
                g<<"-1\n";
            else
                g<<rezultat<<"\n";

        }
        else
            g<<cautbin02();
    }
}