Cod sursa(job #1162253)

Utilizator sergiunascaSergiu Nasca sergiunasca Data 31 martie 2014 18:46:44
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
std::vector<int> a;
int n,m,x,y,i,k;
int main()
{
    fin>>n;
    for(i=1;i<=n;++i)
    {
        fin>>x;
        a.push_back(x);
    }
    fin>>m;
    for(i=1;i<=m;++i)
    {
        fin>>x>>y;
        if(x==0)
        {
            k = (lower_bound(a.begin(),a.end(),y+1)-a.begin());
            if(a[k-1]!=y)fout<<"-1"<<'\n';
            else fout<<k-1<<'\n';
        }
        else if(x==1)
        {
            fout<<(lower_bound(a.begin(),a.end(),y+1)-a.begin())<<'\n';
        }
        else if(x==2)
        {
            fout<<(upper_bound(a.begin(),a.end(),y-1)-a.begin()+1)<<'\n';
        }
    }
    return 0;
}