Cod sursa(job #594501)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 7 iunie 2011 23:35:23
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

long N, M, V[100005];

int main()
{
    ifstream fin ("cautbin.in");
    ofstream fout ("cautbin.out");
    long i, Tip, Cautat, X;
    fin >> N;
    for (i=1; i<=N; ++i)
    {
        fin >> V[i];
    }
    sort (V+1, V+N+1);
    fin >> M;
    for (; M>0; --M)
    {
        fin >> Tip >> Cautat;
        if (Tip==0)
        {
            X=upper_bound (V+1, V+N+1, Cautat)-V-1;
            if ((X>0)&&(X<=N))
            {
                fout << X << "\n";
            }
            else
            {
                fout << "-1\n";
            }
        }
        if (Tip==1)
        {
            X=lower_bound (V+1, V+N+1, Cautat+1)-V-1;
            fout << X << "\n";
        }
        if (Tip==2)
        {
            X=upper_bound (V+1, V+N+1, Cautat-1)-V;
            fout << X << "\n";
        }
    }
    fin.close ();
    fout.close ();
    return 0;
}