Cod sursa(job #1640732)

Utilizator e.mugurelMugurel Enache e.mugurel Data 8 martie 2016 19:04:31
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.36 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int a,b,n,i,v[100001],m,j,c;

int main()
{
    fin >> n;
    for(i=1; i<=n; ++i)
    {
        fin >> v[i];
    }

    fin >> m;
        for(i=1; i<=m;++i)
        {
                fin >> a >> b;
                    switch(a)
                    {
                        case 0:
                        {
                            c = upper_bound(v+1, v+n+1, b) - v -1;
                            if(v[c] == b && c >=1 && c<=n)
                            {
                                fout << c << '\n';
                            }
                            else
                                fout << -1 << '\n';
                        break;
                        }

                        case 1:
                            {
                                c = lower_bound(v+1,v+n+1,b+1) - v - 1;
                                fout << c << '\n';
                        break;
                            }
                        case 2:
                            {
                              c = upper_bound(v+1,v+n+1,b-1) - v;
                              fout << c << '\n';
                        break;
                            }
                    }

        }

    return 0;
}