Cod sursa(job #2073790)

Utilizator razvancostacheCostache Razvan razvancostache Data 23 noiembrie 2017 18:43:57
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("cautbin.in");
ofstream g("cautbin.out");

const int L=16;

int n,v[100001],x;

int o2(int n, int v[100001],int x)
{
   int r, pas;
   r=0;
   pas=1<<L;
   while(pas!=0)
   {
    if(v[r]!=x)
    {
       r=-1;
    }
      if(r+pas<=n && v[r+pas]<=x)
      {
        r+=pas;
      }
      pas/=2;
   }
   return r;
}
int i2(int n, int v[100001])
{
   int r, pas;
   r=0;
   pas=1<<L;
   while(pas!=0)
   {
      if(r+pas<=n && v[r+pas]<=x)
      {
        r+=pas;
      }
      pas/=2;
   }
   return r;
}

int e3(int n, int v[100001])
{
   int r, pas;
   r=0;
   pas=1<<L;
   while(pas!=0)
   {
      if(r+pas<=n && v[r+pas]<x)
      {
        r+=pas;
      }
      pas/=2;
   }
   r++;
   return r;
}

int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
    {
       f>>v[i];
    }
    f>>x;
    g<<o2(n,v,x)<<"\n";
    g<<i2(n,v)<<"\n";
    g<<e3(n,v)<<"\n";

    return 0;
}