Cod sursa(job #2458138)

Utilizator xAnymousAndrei Fratila xAnymous Data 19 septembrie 2019 18:52:05
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>

using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int v[100001];
int cautbin(int start, int stop,int termen)
{
    bool ok=0;
    int poz=-1,mid;
    while(!ok&&start<=stop)
    {
        mid=(start+stop)/2;
        if(v[mid]==termen)
        {
            poz=mid;
            ok=1;
        }
        else if(v[mid]<termen)
            start=mid+1;
        else
            stop=mid-1;
    }
    return poz;
}
int main()
{
    int N,M,i,a,b,poz;
    in>>N;
    for(i=0;i<N;i++)
    {
        in>>v[i];
    }
    in>>M;
    for(i=0;i<M;i++)
    {
        in>>a;
        in>>b;
        if(a==0)
        {
            poz=cautbin(0,N,b);
            while(v[poz+=1]==b)
                poz++;
            out<<--poz;
        }
        else if(a==1)
        {
            poz=cautbin(0,N,b);

        }

    }
    return 0;
}