Cod sursa(job #2200423)

Utilizator DarinelaAndronovici Darinela Darinela Data 1 mai 2018 13:07:45
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>
using namespace std;
 
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
 
int A[100002],n,k,m,x,y ;
int main()
{
    fin>>n;
    for(int i=1; i<=n; i++)
    {
        fin>>A[i];
    }
    sort(A + 1, A + N + 1);
    //int y=3;
 
    fin>>m;
    for(int i=1; i<=m; i++)
    {
        fin>>k;
        if(k==0)
        {
            fin>>y;
            x=upper_bound(A +1,A+n+1 ,y)-A-1;
           if (x <= n && x >= 1 && A[x] == y)
                fout<<x<<'\n';
            else
                fout<<-1<<'\n';
 
        }
        else if(k==1)
        {
            fin>>y;
            x = lower_bound(A + 1, A + n + 1, y + 1) - A - 1;
                fout<<x<<'\n';
                }
        else 
        {
            fin>>y;
            x = upper_bound(A + 1, A + n + 1, y - 1) - A;
                    fout<<x<<'\n';
                }
 
            }
    return 0;
}