Cod sursa(job #950302)

Utilizator AnonymouslegionAnonymous Anonymouslegion Data 16 mai 2013 15:25:20
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>

using namespace std;

const int kstart = 1 << 16;

int array[100005];

int main(){
  ifstream in("cautbin.in");
  ofstream out("cautbin.out");

  int n;

  in >> n;

  for(int i = 1; i <= n; ++i)
    in >> array[i];

  int m;

  in >> m;

  for(int i = 1; i <= m; ++i){
    int tip, query;

    in >> tip >> query;

    int ans = 0;

    if(tip == 2)
      --query;

    for(int i = kstart; i; i >>= 1)
      if(ans + i <= n)
        if(array[ans + i] <= query)
          ans += i;

    if(tip == 0)
      if(array[ans] != query)
        ans = -1;
    if(tip == 2)
      ++ans;

    out << ans << "\n";
  }

  return 0;
}