Cod sursa(job #1199322)

Utilizator the_missing_linkIan Apreotesei the_missing_link Data 18 iunie 2014 20:14:18
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <algorithm>

using namespace std;

int v[100000];

int main()
{
        ifstream f("cautbin.in");
        ofstream g("cautbin.out");

        int N, M, query, x;

        f >> N;
        for(int i=1; i<=N; i++)
                f >> v[i];

        f >> M;
        for(int i=1; i<=M; i++) {
                f >> query >> x;
                if (query == 0) {
                        int y = upper_bound(v+1,(v+1)+N,x)- v - 1;
                        if(!(v[y]==x && y<=N))
                            y = -1;
                        g << y << "\n";
                }
                if (query == 1) {
                        g << lower_bound(v+1,(v+1)+N,x+1)-(v+1) << "\n";
                }
                if (query == 2) {
                        g << upper_bound(v+1,(v+1)+N,x-1)-v << "\n";
                }
        }
        return 0;
}