Cod sursa(job #1403971)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 27 martie 2015 17:55:05
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int m,y,n,a[100000],pz,p,i,x,mij,ls,ld,ok,var,poz;
int main()
{
   f>>n;for(i=1;i<=n;i++) f>>a[i];f>>m;
   for(;m;m--)
   {
      f>>y>>x;
        ls=1;ld=n;ok=1;
        mij=(ls+ld)/2;
        while(ls<=ld&&ok)
             {
                 if(a[mij]==x) {ok=0;p=mij;}
                    else if(x>a[mij]) {ls=mij+1;mij=(ls+ld)/2;}
                            else if(x<a[mij]) {ld=mij-1;mij=(ls+ld)/2;}
             }
                    if(y==0) if(ok==1) g<<-1<<'\n';
                    ok=1;var=1;
                    for(i=p+1;i<=n;i++) if(a[i]==x) {pz=i;ok=0;}
                    if(y==0)  g<<pz<<'\n';
                    if(y==1) {
                                if(ok==0) g<<pz<<'\n';
                                else g<<p<<'\n';
                             }
                             poz=p;
            if(y==2)
            {
            while(a[poz]==a[poz-1]) poz--;
                g<<poz;
            }
        }
}