Cod sursa(job #3343609)

Utilizator Alias47John Doe Alias47 Data 27 februarie 2026 20:29:21
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

string file = "cautbin";
ifstream f(file + ".in");
ofstream g(file + ".out");

const int dim = 100000;
long long v[dim+10];

int main()
{
    long long n, m, c, x, maxx, i, j;
    f >> n;
    for (i = 1; i <= n; i++) f >> v[i];
    //if (n<=dim) v[n + 2] = -1;
    f >> m;
    for (i = 1; i <= m; i++)
    {
        f >> c >> x;
        if (c == 0)
        {
            long long r = upper_bound(v + 1, v + n + 1, x) - v - 1;
            if (x == v[r]) g << r << "\n";
            else g << -1 << "\n";
        }
        if (c == 1)
            g << lower_bound(v + 1, v + n + 1, x + 1) - v - 1 << "\n";
        if (c == 2)
            g << upper_bound(v + 1, v + n + 1, x - 1) - v << "\n";
    }
    return 0;
}