Cod sursa(job #2370409)

Utilizator Alex03Runcan Alexandru Alex03 Data 6 martie 2019 12:02:30
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>	
using namespace std;

int n, x, y, m, v[100011];
int main()	
{
    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");
    fin >> n;
    for (int i=1;i<=n;i++) 
    {
        fin >> v[i];
    }
    fin >> m;
    for (int i=1;i<=m;i++) 
    {
        fin >> x >> y;
        if (x==0) 
        {
            int b = upper_bound(v+1,v+n+1,y)-v-1;
            if (b<=n && b>=1 && v[b]==y) fout << b << '\n';
            else fout << -1 << '\n';
        }
        else if (x==1) fout << lower_bound(v+1,v+n+1,y+1)-v-1 << '\n';
        else fout << upper_bound(v+1,v+n+1,y-1)-v << '\n';
    }
    return 0;	
}