Cod sursa(job #447476)

Utilizator alexandru92alexandru alexandru92 Data 28 aprilie 2010 20:30:27
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
/* 
 * File:   main.cpp
 * Author: virtualdemon
 *
 * Created on April 28, 2010, 8:24 PM
 */
#include <vector>
#include <cstdlib>
#include <fstream>
#include <algorithm>

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