Cod sursa(job #437048)

Utilizator alexandru92alexandru alexandru92 Data 9 aprilie 2010 11:33:53
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
/* 
 * File:   main.cpp
 * Author: VirtualDemon
 *
 * Created on April 9, 2010, 9:52 AM
 */
#include <vector>
#include <cstdlib>
#include <fstream>
#include <algorithm>

/*
 *
 */
using namespace std;
vector< int > v;
vector< int >::const_iterator it, iend;
pair< vector< int >::const_iterator, vector< int >::const_iterator > pr;
int main( void )
{
    int N, M, i, j;
    ifstream in( "cautbin.in" );
    ofstream out( "cautbin.out" );
    in>>N;
    for( ; N; --N )
    {
        in>>i;
        v.push_back(i);
    }
    in>>M;
    for( it=v.begin(), iend=v.end(); M; --M )
    {
        in>>i>>j;
        if( !i )
        {
            pr=equal_range( it, iend, j );
            j=pr.second-it;
            if( j == N )
                out<<"-1\n";
            else out<<j<<'\n';
        }
        else if( 1 == i )
             {
                out<<( lower_bound( it, iend, j+1 ) - it )<<'\n';
             }
             else out<<( upper_bound( it, iend, j-1 ) - it + 1 )<<'\n';
    }
    return EXIT_SUCCESS;
}