Cod sursa(job #1631031)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 5 martie 2016 12:45:54
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>

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

    }
    while(gasit==0 && st<=dr)
    {
        mij=(st+dr)/2;
        if(v[mij]>=x)
            mij=st+1;
        else if(v[mij]<=x)
            mij=dr-1;


    }
    out<<mij<<endl;
    out<<mij<<endl;
    out<<mij;
    return 0;
}