Cod sursa(job #2877622)

Utilizator FasoleboiTudor Gadalean Fasoleboi Data 25 martie 2022 09:08:15
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#define N 100001
using namespace std;

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

int n, a[N], m, x, y;

int main(){
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>a[i];
    }
    fin>>m;
    while(m--){
        fin>>y>>x;
        if(y==0){
            int ub = upper_bound(a+1, a+n+1, x)-a-1;
            if(a[ub]==x && ub>=1 && ub<=n){
                fout<<ub;
            }else{
                fout<<-1;
            }
        }else if(y==1){
            int lb = lower_bound(a+1, a+n+1, x+1)-a-1;
            fout<<lb;
        }else{
            int ub = upper_bound(a+1, a+n+1, x-1)-a;
            fout<<ub;
        }
        fout<<endl;
    }
    return 0;
}