Cod sursa(job #2863421)

Utilizator backleventeBack Levente backlevente Data 6 martie 2022 18:20:56
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

#define ll long long

ifstream fin("cautbin.in");
ofstream fout("cautbin.out");

ll n, m;
vector <ll> x;

int main(){
  fin >> n;

  x.resize(n + 1);

  for(ll i = 1; i <= n; ++i)
    fin >> x[i];

  fin >> m;

  for(ll i = 1, query, num, k; i <= m; ++i){
    fin >> query >> num;
    if(query == 0){
      ll poz = upper_bound(x.begin(), x.end(), num) - x.begin();
      if(x[poz - 1] == num) 
        fout << poz - 1 << "\n";
      else 
        fout << poz << "\n";
    }
    else if(query == 1)
      fout <<  upper_bound(x.begin(), x.end(), 4) - x.begin() - 1 << "\n";
    else if(query == 2)
      fout << "";
  } 

  return 0;
}