Cod sursa(job #945880)

Utilizator Darius15Darius Pop Darius15 Data 3 mai 2013 11:13:36
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;
int step,n,i,m,val,a[100001],nr,j;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
void citire( )
{
  f>>n;
  for (i=1;i<=n;i++)
  f>>a[i];
}
int main()
{
        citire();
        f>>m;
        for (j=1;j<=m;j++)
        {
          f>>nr>>val;
          for (step = 1; step < n; step <<= 1);
          for (i = 0; step; step >>= 1)
          if (i + step <= n && a[i + step] <= val)
           i += step;
          if (nr==0){
          if (a[i]!=val) g<<"-1"<<'\n';
          else g<<i<<'\n';
        }
        if (nr==1) g<<i<<'\n';
        if (nr==2) g<<i+1<<'\n';

        }

        return 0;
}