Cod sursa(job #3367592)

Utilizator Matey313Buzac Matei Matey313 Data 8 octombrie 2026 18:55:56
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.25 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");

int n, m, v[100001], q;

int main () {
    fin >> n;
    for (int i = 1; i <= n; i++) {
        fin >> v[i];
    }
    fin >> m;
    for (int i = 1; i <= m; i++) {
        int x;
        fin >> q >> x;
        if (q == 0 || q == 1) {
            int st = 1, dr = n, ans = -1;
            while (st <= dr) {
                int mid = (st + dr) / 2;
                if (v[mid] <= x) {
                    ans = mid;
                    st = mid + 1;
                }
                else {
                    dr = mid - 1;
                }
            }
            if (v[ans] == x) {
                fout << ans << '\n';
            }
            else {
                fout << -1;
            }
            continue;
        }
        else {
            int st = 1, dr = n, ans = -1;
            while (st <= dr) {
                int mid = (st + dr) / 2;
                if (v[mid] >= x) {
                    ans = mid;
                    dr = mid - 1;
                }
                else {
                    st = mid + 1;
                }
            }
            fout << ans << '\n'; 
        }
    }
}