Cod sursa(job #1162271)

Utilizator sergiunascaSergiu Nasca sergiunasca Data 31 martie 2014 18:59:53
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 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=-1;
            for(int i=0;i<n;++i)
            {
                if(a[i]==y)k = i+1;
                else if(a[i]>y)break;
            }
            fout<<k<<'\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;
}