Cod sursa(job #1428801)

Utilizator mantisVraciu Stefan mantis Data 5 mai 2015 09:23:18
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<iostream>
using namespace std;
int n,st,dr,stg,drp,x,m,a[1001];
int main()
{
    cout<<"x="; cin>>x;
    cout<<"n="; cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"a["<<i<<"]=";
        cin>>a[i];
    }
    st=0; dr=n-1;
    while(st<dr)
    {
        m=(st+dr)/2;
        if(x<=a[m])dr=m;
        else st=m+1;
    }
    if(a[st]==x)stg=st;
    else stg=-1;
    if(stg!=-1)
    {
        st=0; dr=n-1;
        while(st<dr)
        {
            m=(st+dr)/2;
            if(x<a[m])dr=m-1;
            else st=m;
        }
        drp=st;
        cout<<"Numarul de aparitii ale lui x: "<<(drp-stg+1);
    }
    else cout<<x << "nu apare in vector";
    return 0;
}