Cod sursa(job #1583944)

Utilizator gorni97aaa aaa gorni97 Data 29 ianuarie 2016 15:54:19
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
#define maxn 100000
using namespace std;
int main()

{int n,v[maxn],i,j,k,x,y,li,ls,m,OK;
fstream f("cautbin.in",ios::in);
fstream g("cautbin.out",ios::out);
f>>n;
for(i=1;i<=n;i++)
    f>>v[i];
f>>m;
    for(i=1;i<=m;i++)
    {f>>x>>y;

    if(x==0)
    {li=1;ls=n;
    k=(li+ls)/2;OK=0;
    while(li<=ls)
    {if(v[k]>y) ls=k-1;
    else
    if(v[k]<y)
        li=k+1;
    else
    {while(v[k+1]==y)
    k++;
    cout<<k<<" ";OK=1;}
    k=(li+ls)/2;
    }if(OK==0) cout<<-1<<" ";}


    if(x==1)
    {li=1;
    ls=n;


    while(li<=ls)
    {    k=(li+ls)/2;
        if(v[k]<=y) li=k+1;
    else

        ls=k-1;

    cout<<ls<<" ";}


    }


    if(x==2)
      {li=1;
    ls=n;
    k=(li+ls)/2;

    while(li<=ls)
    {    k=(li+ls)/2;
        if(v[k]>=y) ls=k-1;
    else
          li=k+1;

    cout<<li<<" ";}


    }
}

    }