Cod sursa(job #1424781)

Utilizator Firealex2Rotileanu Alexandru Firealex2 Data 25 aprilie 2015 15:22:49
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;
ifstream fi("cautbin.in");
ofstream fo("cautbin.out");
const int N = 100000;
int v[N+1];

int main()
{
    int i, pas, n, m, x, j, intr;
    fi>>n;
    for(i=1;i<=n;i++)
      fi>>v[i];
    fi>>m;
    i=0;
    pas=1<<16;
    for(j=1;j<=m;j++)
    {
      fi>>intr;
      fi>>x;
      pas=1<<16;
      i=0;
      if((intr==0)||(intr==1))
        {
          while(pas!=0)
          {
            if((i+pas<=n)&&(v[i+pas]<=x))
              i+=pas;
            pas/=2;
          }
          if((intr==0)&&(v[i]!=x))
            fo<<"-1"<<"\n";
          else
            fo<<i<<"\n";
        }
      else
        {
          while(pas!=0)
            {
              if((i+pas<=n)&&(v[i+pas]<x))
                i+=pas;
              pas/=2;

            }
          fo<<i+1<<"\n";
        }
    }


    return 0;
}