Cod sursa(job #2278396)

Utilizator catalinaioanaObreja Ioana Catalina catalinaioana Data 7 noiembrie 2018 23:15:24
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.22 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,i,v[100001],x,j,ls,ld,mid,sol,m,tip,poz;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    for(i=1;i<=m;i++)
    {
        f>>tip>>x;
        ls=1;
        ld=n;
        while(ls<=ld)
        {
            mid=(ls+ld)/2;
            if(x==v[mid] && tip==2)
            {
                poz=mid;
                break;
            }
            else
                if(x<v[mid])
                    ld=mid-1;
                else
                    ls=mid+1;
        }
        if(tip==0)
            if(v[ld]==x)
                g<<ld<<'\n';
            else
                g<<-1<<'\n';
        else
            if(tip==1)
                g<<ld<<'\n';
        else
            if(tip==2)
            {
                ls=1;
                ld=n;
                while(ls<=ld)
                {
                    mid=(ls+ld)/2;
                    if(x<=v[mid])
                        ld=mid-1;
                    else
                        ls=mid+1;
                }
                g<<ls<<'\n';
            }

    }
    return 0;
}