Cod sursa(job #1424785)

Utilizator jaocChitu Stefan Catalin jaoc Data 25 aprilie 2015 15:23:56
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[1000001];
int main()
{
    int n,i,m,k,x,pas;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
    in>>m;
    while(m){
      in>>k>>x;
      i=0;
      pas=1<<16;
      if(k==0 || k==1){
       while(pas){
        if(i+pas<=n && v[i+pas]<=x)
           i+=pas;
        pas/=2;
        }
        if(k==0 && v[i]!=x)
           out<<i<<'\n';
      }
      else {
       while(pas){
        if(i+pas<=n && v[i+pas]<x)
           i+=pas;
        pas/=2;
        }
        i++;
      }
      out<<i<<'\n';
      m--;
    }
    in.close();
    out.close();
    return 0;
}