Cod sursa(job #1527497)

Utilizator paul-gPaul Grigoras paul-g Data 18 noiembrie 2015 10:44:14
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <vector>
#include <algorithm>
#include <fstream>
#include <iostream>

using namespace std;

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

  int n, m;
  f >> n;
  vector<int> nums(n);
  for (int i = 0; i < n; i++)
    f >> nums[i];
  f >> m;
  for (int i = 0; i < m; i++) {
    int op, x;
    f >> op >> x;
    auto p = equal_range(nums.begin(), nums.end(), x);
    if (op == 0) {
      if (p.second > p.first) {
        g << (p.second - nums.begin());
      } else {
        g << -1;
      }
    } else if (op == 1) {
      g << p.second - nums.begin();
    } else {
      g << p.first - nums.begin() + 1;
    }

    g << "\n";
  }
}